java中2的补码怎么算的简单介绍

博主:adminadmin 2022-12-25 02:21:06 88

本篇文章给大家谈谈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的补码怎么算和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-25,除非注明,否则均为首码项目网原创文章,转载请注明出处。