java中2的补码怎么算的简单介绍
本篇文章给大家谈谈java中2的补码怎么算,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
关于JAVA二进制补码
首先对十进制的整型数据转化为二进制,如果整型是负的,求得的二进制取反再加上1就是补码,如果是正数,其补码就是本身。
java求补码
~在c和java语言中都是求反码,或者叫位非NOT运算。
java的运算有特殊性:
4的二进制为100,
执行~4后转换成32位有符号整型(int),值为11111111111111111111111111111011
打印时,按有符号解释成-5。
C语言的运算和java大类相同,但要注意几点
1、注意意无符号的情况。unsigned int i=~4;的值就是4294967291
2、注意变量的数据长度。在c中,char和char之间,short和short之间,long和long之间的加减都按本身定义的长短。而不像java都统一转换成32位int后进行运算
3、注意显示时符号的有无。printf中的%d和%u对显示结果就有本质区别
菜鸟求教:java 中的“取补码”问题!?
~
(位运算符),按位非,其运算法则为:如果某个数对应位上是1,则该位上最后得到的结果就是0;反之,如果某个数对应位上是0,则该位上最后得到的结果就是1.也就是有些人说的取反的意思,记住取反是在其转化为二进制后进行的。
补码的运算楼主可以看看:2的补码为
2转换为二进制
~
00000010
结果
11111101
可以看出结果为一个负数,因为最高位为符号位,1为负数,0为正数。负数的补码的规则为取反再加1,过程为
11111101
取反
00000010
加1
00000011
最后把00000011转为十进制3,但不要丢了符号,因此2的补码为-3.
不知楼主看懂了么。
ps:楼主应该知道十进制、二进制、八进制、十六进制的相互转换吧,不知道的话,可要好好补补啊!
java位运算符中~2为什么是-3
整数默认用int类型(32位)以补码的形式存储,2的二进制表示是000...00010(10前面有30个0),因此~2就是111...11101(01前面有30个1)。而-3的原码是100...00011(11前面有29个0),反码是1111...11100(00前面有30个1),补码是111...11101(01前面有30个1)不就是~2吗?因此~2是-3。
~4是-5是同样的道理!
关于java中2的补码怎么算和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-25,除非注明,否则均为
原创文章,转载请注明出处。