黑马程序员技术交流社区
标题:
关于位运算的按位取反
[打印本页]
作者:
jx836202365
时间:
2015-6-10 23:29
标题:
关于位运算的按位取反
#include <stdio.h>
int main(int argc, const char * argv[]) {
int b =~7;
// 000000000000000000000111 7的原码
// 111111111111111111111000 ~7的值
// 100000000000000000000111 ~7的反码
// 100000000000000000001000 ~7的补码
printf("b = %d",b);
return 0;
}
这是我自己算的。~7是仅仅对7的原码按位取反,还是对它内存中存储的那个值即补码进行按位取反。从计算结果逆推好像是对原码啊,但是后面算值的时候又要将那个值当作内存中存储的数据即补码,还需要 除了首位取反加1计算原码,这不是前后矛盾么
作者:
晗修
时间:
2015-6-11 01:02
。。。。。。。。。。。。。正数的原发反码补码都是一样的
作者:
晗修
时间:
2015-6-11 01:04
对了 忘记说 ~是按位取反 和求反码不是一个意思
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2