原码、反码、补码
2010-02-22 15:17
155 查看
正数:原码、反码、补码一样
[+7]原= 0 0000111 B
[+7]反= 0 0000111 B
[+7]补= 0 0000111 B
负数:原码就是原来的表示方法、反码是除符号位(最高位)外取反、补码=反码+1
[-7]原= 1 0000111 B
[-7]反= 1 1111000 B
[-7]补= 1 1111001 B
当做加法时,只需将原码相加即可,例如7+4=11
[+7]原= 0 0000111 B
[+4]原= 0 0000100 B
-----------------------------------
0 0001011 B(11)
当做减法时,例如7-4=3,可以看成加上负数7+(-4),但是这里直接用原码计算是错误的,如下所示:
[+7] 原= 0 0000111 B
[-4] 原= 1 0000100 B
-----------------------------------
1 0001011 B(-11)
由于4-4=0在计算机里可以表示为
[+4] 原= 1 0000100 B
[-4] 补= 1 1111100 B
-----------------------------------
1 0 0000000 B(0) —— 这里1是溢出位
根据上述结论,如果将-4转换成补码,则可以使运算成立。
[+7] 原= 0 0000111 B
[-4] 补= 1 1111100 B
-----------------------------------
1 0 0000011 B(3)
这里可以联想为:7原+(-4)补=3原+4原+(-4)补=3原+0原=3原
[+7]原= 0 0000111 B
[+7]反= 0 0000111 B
[+7]补= 0 0000111 B
负数:原码就是原来的表示方法、反码是除符号位(最高位)外取反、补码=反码+1
[-7]原= 1 0000111 B
[-7]反= 1 1111000 B
[-7]补= 1 1111001 B
当做加法时,只需将原码相加即可,例如7+4=11
[+7]原= 0 0000111 B
[+4]原= 0 0000100 B
-----------------------------------
0 0001011 B(11)
当做减法时,例如7-4=3,可以看成加上负数7+(-4),但是这里直接用原码计算是错误的,如下所示:
[+7] 原= 0 0000111 B
[-4] 原= 1 0000100 B
-----------------------------------
1 0001011 B(-11)
由于4-4=0在计算机里可以表示为
[+4] 原= 1 0000100 B
[-4] 补= 1 1111100 B
-----------------------------------
1 0 0000000 B(0) —— 这里1是溢出位
根据上述结论,如果将-4转换成补码,则可以使运算成立。
[+7] 原= 0 0000111 B
[-4] 补= 1 1111100 B
-----------------------------------
1 0 0000011 B(3)
这里可以联想为:7原+(-4)补=3原+4原+(-4)补=3原+0原=3原
相关文章推荐
- 原码、反码、补码
- 两个例子,搞懂原码,反码,补码
- java的原码,反码与补码
- 原码、反码、补码
- C语言基础一之预备知识(计算机结构组成、计算机系统组成、进制、原码反码补码)
- 原码,反码,补码,移码
- 原码, 反码, 补码 详解
- 关于原码、反码、补码的一些理解
- 原码、反码、补码
- 聊一聊计算机的原码,反码,补码
- 计算机的原码, 反码和补码
- 原码、反码、补码
- 计算机二进制原码、反码、补码
- 字符编码(一)原码、反码、补码
- 原码, 反码, 补码 详解
- 原码、反码、补码转换。short、int、long类型有无符号位输出
- 原码、补码、反码之间转换详解
- 原码、反码、补码
- 原码, 反码, 补码 详解
- 二进制原码、反码、补码