以下是引用血舞生在2013-3-25 17:23:04的发言:
首先,二进制是没有正负的,只能是十进制的负数以二进制的补码的形式存储;
正数的补码是二进制数本身,也就是十进制10的二进制是1010;
而负数的补码是负数绝对值的补码再加上1,例如十进制-10,它的补码为绝对制10的补码1010取反0101再加上1,为0110。
有不对的请指教
以上四块红色部分有错误
1、我知道你的意思,但是这说法是错误的,二进制有正负;
2、正数也以二进制补码形式储存
3、计算机把 8 位二进制位定义为一个字节,所以最好写成 00001010 ,
其中第一位是符号位,0 表示正数,1 表示负数
4、计算机内有 原码、反码、补码和移码,(这里移码就不做讨论了),设 X 是一个十进制数(真值)
规则: 若X为正数:
[X]原=[X]反=[X]补,
也就是说正数的原码、反码和补码都一样
若X为负数: 负数的反码:符号位是 1 ,其它各位是对原码求反,
负数的补码:[X]补=[X]反+1, 也就是说负数的补码是“补码加 1 ”
比如:十进制数(真值)-10,[-10]原=1000 1010,[-10]反=1111 0101,[-10]补=1111 0110;
若X为0:不管将 0 当成 +0 或 -0 ,它的补码始终为 0000 0000 ,这也是计算机内部采用补码方法来表示数值的原因之一
[
本帖最后由 韶志 于 2013-3-25 19:06 编辑 ]