您的位置:首页 > 其它

原码、反码、补码、移码

2016-12-12 11:35 274 查看

原码

如果机器字长为n,那么一个数的原码就是一个n位的二进制数

最高位为符号位:正数为0,负数为1

剩下的n-1位表示原数的绝对值

例如:

  x=+101011,[x]原=0010 1011

  x=-101011,[x]原=1010 1011

位数不够的用0补全

反码

正数的反码和原码相同

负数则在原码的基础上,符号位不变,其他位按位取反。

例如:

  x=+101011,[x]原=0010 1011,[x]反=0010 1011

  x=-101011,[x]原=1010 1011,[x]反=1101 0100

补码

正数的补码和原码相同

负数则在反码的基础上,按照正常的加法+1

例如:

  x=-101011,[x]原=1010 1011,[x]反=1101 0100,[x]补=1101 0101

0的补码是唯一的,如果机器字长为8,[0]补=0000 0000

移码

将补码的符号位取反

例如:

  x=-101011,[x]原=1010 1011,[x]反=1101 0100,[x]补=1101 0101,[x]移=0101 0101
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: