原文:位运算有符号右移和无符号右移

lt lt :左移运算符,n lt lt 相当于 n gt gt :右移运算符,n gt gt 相等于n gt gt gt :无符号右移,忽略 int a 的 进制位: 源码 : 反码 : 补码 : 在反码基础上 a lt lt : a gt gt : 右移两位,左边高位再补两个 ,所以看着没什么变化 a gt gt gt : 无符号右移跟上个比起来就是高位不补 int a System.out ...

2017-02-27 09:35 0 3023 推荐指数:

查看详情

运算:有符号整数右移和无符号整数右移的区别

如果我们定义一个有符号整数 int a = 0x80000000; 然后执行 a = a >> 1; 那么a将变为0xc0000000; 我们再定义一个无符号整数 unsigned int b = 0x80000000; 然后执行 b = b >> 1; 那么b则将变为 ...

Thu Jan 19 17:43:00 CST 2017 0 5872
java右移>> 符号右移>>>

>>>是符号右移,在高位补零 >>是带符号右移,如果是正数则在高位补零,负数则补1 int a = -1; System.out.println(a>>1); System.out.println(a>>> ...

Sat Aug 13 08:27:00 CST 2016 0 2134
[JAVA]移位运算(左移<<,右移>>和符号右移>>>)

一、背景知识     整数在内存中是以二进制的形式存在的,而且存的是该整数的补码。最高位代表符号,正数为0,负数为1   正数的补码是其二进制本身,负数的补码则是 符号保持1不变,其他按位取反再加1,+0和-0的补码相同,都是0。   负数在进行按位与运算时是以补码形式参与运算 ...

Thu May 16 08:14:00 CST 2019 0 992
符号右移( >>> )

我们知道在Java中int类型占32,可以表示一个正数,也可以表示一个负数。正数换算成二进制后的最高位为0,负数的二进制最高位为1 例如 -5换算成二进制后为: 1111 1111 1111 1111 1111 1111 1111 1011 对其进行符号右移2 ...

Sat Oct 02 08:02:00 CST 2021 0 108
java左移、右移符号右移

右移 System.out.println(-3>>1);   结果是-2,为什么会是-2呢?下面我们来看一下. System.out.println(Integer.toHexString(-3));   得到-3的16进制为fffffffd(此为-3的补码,计算机中负数用补码 ...

Fri Mar 02 18:09:00 CST 2018 0 1915
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM