黑马程序员技术交流社区

标题: 求补码的运算 [打印本页]

作者: HM周一帆    时间: 2013-3-25 20:29
标题: 求补码的运算
本帖最后由 ivan5544 于 2013-3-25 20:47 编辑

-10101100这个补码是101010100  怎么计算的   
作者: 疯狂程序    时间: 2013-3-25 20:35
本帖最后由 疯狂程序 于 2013-3-25 20:40 编辑

正数是取反+1,负数的是-1 取反

10101100
00000001 -1
------------------------
10101001
--------------------------取反
01010110

例子
负数的二进制的表示形式
6=110
-6:其实就是6的二进制取反+1
0000-0000 0000-0000 0000-0000 0000-0110
1111-1111 1111-1111 1111-1111 1111-1001
1111-1111 1111-1111 1111-1111 1111-1010=-6
负数的最高位都是1

作者: TK13761    时间: 2013-3-25 20:42
解答 对于负数 求补码规则是 符号位不变后面取反某位 加1
-10101100 的符号位是1 即
110101100 符号位1不变后面取反得到
101010011  某位加1得到
101010100
------------------
补充  求补码规则
一:对于正数,原码和反码,补码都是一样的,都是正数本身。
        对于负数,原码是符号位为1,数值部分取X绝对值的二进制。
                            反码是符号位为1,其它位是原码取反。
                            补码是符号位为1,其它位是原码取反,未位加1。
                            也就是说,负数的补码是其反码未位加1。
                            移码就是将符号位取反的补码
---




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2