首页编程java编程java中按位是什么意思啊 java中按位取反 ~5=-6为什么呀

java中按位是什么意思啊 java中按位取反 ~5=-6为什么呀

编程之家2023-10-11101次浏览

大家好,关于java中按位是什么意思啊很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于java中按位取反 ~5=-6为什么呀的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

java中按位是什么意思啊 java中按位取反 ~5=-6为什么呀

java中按位取反 ~5=-6为什么呀

这是因为整数在计算机中是二进制存储的。

java中~5=-6,而这个-6是输出到屏幕上,我们看到的是-6。

首先看对5求反,

java中按位是什么意思啊 java中按位取反 ~5=-6为什么呀

5的二进制原码是:0000 0101,

取反之后是:1111 1010,得到的这个值在计算机中的存储原型也是 1111 1010,而要把这个结果显示出来,到计算机屏幕上就要转换成十进制,也就是说 1111 1010是补码形式,

补码=原码取反+ 1。

java中按位是什么意思啊 java中按位取反 ~5=-6为什么呀

补码要换算成对应的十进制就是

原码取反=补码-1

所以 1111 1010- 1= 1111 1001,然后再对 1111 1001取反,得到 1000 0110,

所以原码就是 1000 0110,对应的十进制就是-6。

同样的,这样看也行:

-6在计算机中的存储为二进制补码形式,也就是说-6的补码是 1000 1010(-6的二进制原码是:1000 0110,源码取反之后是 1111 1001,再加上1就是 1111 1010,这就是补码了)。

java中按位取反 ~4=5 怎么算的 求具体步骤

按位取反,包括高位。(要根据8421码来看)

~是位运算符也叫单目运算符,直接操作的是二进制。

4是int类型

4的原码(也是补码、反码):

00000000 00000000 00000000 00000100

运算以补码运算的。

4是正数,正数的原码、反码、补码都是一样

对4取反(包括高位,参考4的反码取反):

11111111 11111111 11111111 11111011

System.out.println(~4)//结果为什么是-5呢?

11111111 11111111 11111111 11111011意思是这个取反的结果代表-7,是-7的补码,

根据补码先求反码,再求原码。

证明它是-5就可以了。

先求反码(减1)

11111111 11111111 11111111 11111011

- 00000000 00000000 00000000 00000001

--------------------------------------------

11111111 11111111 11111111 11111010

再根据反码求原码。

负数的反码是对其原码逐位取反,

但!但符号位除外!

-5的原码:(用8421码看结果)

10000000 00000000 00000000 00000101

最高位是1,代表负数。

最高位是0,代表正数。

最终结果为(-5)

java中的“~”这个符号是表示什么意思啊

~是按位取反(0变1,1变0)的意思,

按位取反是针对二进制的,比如2的二进制表示为010,那么~2就是101

每位可以代表一个含义,针对你的问题。

我们可以定义SelectionKey.OP_READ为100,表示读权限

我们可以定义SelectionKey.OP_WRITE为010,表示写权限

我们可以定义SelectionKey.OP_EXECUTE为001,表示可执行权限

则111就表示拥有所有的读、写、可执行权限

而~SelectionKey.OP_WRITE就是~010== 101,就是除写之外的所有权限(即可读,可执行)

java中按位取反 ~5=-6是为什么

你用4位表示太少了,没法表示标志位。你可以用8位试试

首先给你讲讲负数是怎么存2进制的,就是将其正数部分取反后+1。那么,我们逆推回去,由负数(标志位是1,即首位是1)减去1,然后再取反,是不是就得到了负数的正数部分?

5=00000101(B)

对5取~5= 11111010(B)(首位是1,说明是负数)

然后减去1= 11111001(B)

然后取反= 00000110(B)= 6(D)这就是结果的正数部分

你算一下最后的结果11111010(B)的正数部分是不是6呢?所以嘛~5=-6

END,本文到此结束,如果可以帮助到大家,还望关注本站哦!

java加载器什么时候加载类,java中静态内部类什么时候加载为什么要修复java(如何修复JAVA)