java按位取反代码 java位运算取反

java中按位取反运算的详解

按位取反就是每一位都取反,所谓取反就是1变0,0变1

成都创新互联公司长期为上1000+客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为盐池企业提供专业的网站建设、网站设计,盐池网站改版等技术服务。拥有十载丰富建站经验和众多成功案例,为您定制开发。

比如楼主说的10

二进制表示就是00000000

00000000

00000000

00001010

取反后就是11111111

11111111

11111111

11110101

这在十进制中就是-11

而他的二进制原码表示就是-1011

Java中位运算,对整数5按位取反怎么算

5:00000101取反:11111010因为数在计算机里是用补码形式存放的...所以要把11111010看做一段补码现在把补码转化为原码,第一位是符号..不用变..先变成反码..减1就可以..11111001再变为原码10000110,即-6

525:000001012:00000010与就是各个位做与运算..10=000=011=1结果就是00000000

java编程 按位取反的问题

这个问题涉及到计算机内部的编码。

对于整数,计算机内部用最高位表示符号位,0表示为正,1表示为负。

对于负数,为了便于计算,计算机用补码来表示其值。

已经一个数的补码,要知道其值分两种情况:

1:符号位是0,正数,所以后面的二进制位则表示大小,即正数的原码=其补码。如1表示出来则为00000001(我这里用八位来表示,也可以用16位或32位)

2:符号位是1,负数,这时候需要把后面的数取反再加一(要问为什么?查一下资料吧,可以根据补码的特性推出来),所以11111110表示的数是1111110取反为0000001,再加1,则为0000002。算上符号位,就是-2。

以你的例子来说,

a=0=0000 0000 0000 0000 0000 0000 0000 0000

~a = 1111 1111 1111 1111 1111 1111 1111 1111

符号位是1,后面的数取反再+1

1000 0000 0000 0000 0000 0000 0000 0001 = -1


文章标题:java按位取反代码 java位运算取反
本文来源:http://azwzsj.com/article/dosegpc.html