当前位置: 移动技术网 > IT编程>开发语言>Java > 123按位取反是多少,即~123=?

123按位取反是多少,即~123=?

2018年12月10日  | 移动技术网IT编程  | 我要评论

字体下载大全,遨友网,牛白藤

 

  今天晚上学习《零基础学java》,看到第50页时,发现书上一行代码自己想不通,这行代码意思是将123按位取反,程序运行后输出结果是-124,即~123=-124.

  开始我个人理解是123转换成二进制为:01111011,按位取反后为10000100,即132,与真实输出结果-124不一致。后来我查阅相关资料,才明白原因,以下为正确计算方法:

  (1)二进制数在内存中以补码的形式存储,123的原码为01111011,123的反码为10000100,123的补码为10000101,即123在内存中以10000101形式存储。

  (2)10000101按位取反后为:10000101,其补码为:10000110

  知识点:

  1>反码的表示方法是:正数的反码是其本身;负数的反码是在其原码的基础上, 符号位不变,其余各个位取反。

  2>补码的表示方法是:正数的补码就是其本身;负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1(即在反码的基础上+1)。

  

 

 

 

  

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网