您的位置:首页 > 编程语言 > C语言/C++

黑马程序员--------------------------------------------C语言学习记录五

2015-05-10 11:06 435 查看


----------- android培训java培训、java学习型技术博客、期待与您交流! -----------

原码、反码、补码

一个数在计算机中的二进制存储形式,叫做这个数的机器数。机器数是带符号的,在计算机中用一个数的最高位存放符号,最高位为0表示是正数,最高位为1表示是负数。比如十进制数3的机器数是0000 0011;如果是-3,它的机器数就是1000 0011。

带符号位的机器数对应的真正数值称为机器数的真值。例如,0000 0011的真值是3,1000 0011的真值是-3。需要注意的是,机器数的真值和机器数转换成十进制数是不一样的,例如1000 0011转换成十进制数是131,但由于机器数的最高位存放符号,因此机器数的真值是-3。

机器数有原码、补码、反码这三种表现形式。计算机将一个数以二进制形式存储时,会将该数分别进行求原码、求反码、求补码这三步操作,最终将得到的机器数存入内存。

1、原码

原码就是符号位加上真值的绝对值。例如,1的原码为 0000 0001,-1的原码为1000 0001。

2、反码

反码的表示方法是:正数的反码是其原码,负数的反码是在其原码的基础上,符号位不变,其余各个位取反。例如1的原码是0000 0001,反码也是0000 0001,而-1的原码是1000 0001,反码则是1111 1110。

3、补码

补码的表示方法是:正数的补码就其原码,负数的补码是在其反码的基础上+1。例如1的原码是0000 0001,反码是0000 0001,补码也是0000 0001,而-1的原码是1000 0001,反码是1111 1110,补码则是1111 1111。

最终一个数的补码就是该数在计算机中以二进制形式存放的机器数,例如数值1在计算机中的二进制形式为0000 0 01,而-1在计算机中的二进制形式为1111 1111。


----------- android培训java培训、java学习型技术博客、期待与您交流! -----------

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: