黑马程序员技术交流社区

标题: 关于c语言的位运算 [打印本页]

作者: wangpeng1    时间: 2016-2-27 13:05
标题: 关于c语言的位运算
c语言下负整数在进行二进制运算时为何还要转换成补码?

作者: 冷傲阳    时间: 2016-2-27 15:02

+1在计算机存储:
原码:1000 0000 0000 0000 0000 0000 0000 0001(最高位为符号位)
原码==反码==补码

-1在计算机存储:
原码:1000 0000 0000 0000 0000 0000 0000 0001 (最高位为符号位)
反码:1111 1111 1111 1111 1111 1111 1111 1110
负数的补码==反码+1
补码:1111 1111 1111 1111 1111 1111 1111 1111      -1

只有补码加补码  -1+1 ==0 ,否则用原码或者反码求和得出来的值不为0
作者: Eric_Jia    时间: 2016-3-1 17:26
二进制的最高位是符号位,如果是负数肯定要按照楼上写的这么做。




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