A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© zhuhongbo 中级黑马   /  2016-6-24 09:39  /  670 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

基础测评的时候位运算会考吗,感觉好难,什么源码,反码,补码,尤其是负数的补码让人搞蒙了,有没有谁详细的说一下,

3 个回复

倒序浏览
这个要求是了解,不会考的
回复 使用道具 举报
我是看视频学的,简单的归纳了下,希望可以帮到你,可能有漏洞哦,可以边看教学视频边看我的小总结。
我举例的数据算的也是~4,也就是4的反码,过程中也有负数的原码反码补码变换。
按位与&有0则0
按位或|有1则1
按位异或^不同则1,相同则0
按位取反~所有的0变1,,1变0
编译过程中int类型的十进制数据首先要转化成2进制数据参与运算。

按位取反,符号位和数值位都会改变,而按位与,按位或,按位异或则符号位不
变,只变数值位

正数的原码反码补码一致
负数的原码和反码符号位都是1,其他位置相反,0变1,1变0,
补码等于反码+1.
求一下b的反(~b)
int b = 4;    4的2进制就是100
转化成计算机识别的二进制:
         00000000 00000000 00000000 00000100
取反:  11111111 11111111 11111111 11111011 得到的这个是取反之后的原

码,接下来求它的补码。它的第一位是1,所以这是个负数。         
         11111111 11111111 11111111 11111011 先已知原码求反码
反码:   10000000 00000000 00000000 00000100 再已知反码求补码
补码:   10000000 00000000 00000000 00000101 得到的这个补码就是计算机

输出的数据。也就是2进制数据负的101也就等于-5
         
回复 使用道具 举报
涟漪不起 来自手机 中级黑马 2016-6-25 12:30:30
板凳
多看看视频。知道怎么回事就好,以后用得少。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马