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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

搞晕头了,求解答。谢谢

4 个回复

倒序浏览
正数原码反码补码相同,负数反码:原码的符号位不变其余取反,负数补码:反码+1
回复 使用道具 举报
笑对明天 发表于 2017-2-23 17:35
正数原码反码补码相同,负数反码:原码的符号位不变其余取反,负数补码:反码+1 ...

我明白了,取反就是位运算中的反码。。以前是没搞懂这个概念
回复 使用道具 举报
首先要明确,取反是二进制操作
下面以5为例:
二进制原码:0000 0000 0000 0000 0000 0000 0000 0101
取反操作后:1111 1111 1111 1111 1111 1111 1111 1010
而在Java中,有符号整数都是用补码来表示,而补码=反码+1
1.先求反码:1000 0000 0000 0000 0000 0000 0000 0101
2.再求补码:1000 0000 0000 0000 0000 0000 0000 0110
最高位代表符号位 1 表示负数,0 表示正数 所以结果是-6
   
负数取反最高位不动 其余取反  -----------懂了
回复 使用道具 举报
明天开始从头学起了   
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马