您好,登录后才能下订单哦!
本篇内容介绍了“Java中的位运算与移位运算有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
规则: 如果两个相应的二进制形式的对应的位数都为 1,则结果为 1;否则为 0;  | ||
4 & 5  | ||
4  | 0000 0100  | |
5  | 0000 0101  | |
按位与运算  | &  | |
4 & 5 = 4  | 0000 0100  | |
1 * 2^2 = 4  | ||
-4 & 5  | ||
-4  | 1111 1100  | |
5  | 0000 0101  | |
按位与运算  | &  | |
规则:运算结果符号位是1,为负数, 需要减 1,再取反(其他运算也要遵循)  | ||
-4 & 5 = 4  | 0000 0100  | |
1 * 2^2 = -4  | ||
1.正数直接取二进制运算
2.负数取反加一得补码再运算,得到的结果符号位为 0,不需要做任何操作直接给出结果
规则: 有 1 为 1;否则为 0;  | ||
4 | 5  | ||
4  | 0000 0100  | |
5  | 0000 0101  | |
按位或运算  | |  | |
4 | 5 = 5  | 0000 0101  | |
1 * 2^0 + 1 * 2^2 = 5  | ||
-4 | 5  | ||
-4  | 1111 1100  | |
5  | 0000 0101  | |
按位或运算  | |  | |
规则:运算结果符号位是1,为负数, 需要减 1,再取反(其他运算也要遵循)  | ||
-4 | 5 =  | 1111 1101  | |
减1  | 1111 1100  | |
取反  | -0000 0011  | -4 | 5 = -3  | 
1 * 2^0 + 1 * 2^1 = -3  | ||
规则: 相同为 0;不同为 1;  | ||
4 ^ 5  | ||
4  | 0000 0100  | |
5  | 0000 0101  | |
按位异或运算  | ^  | |
4 ^ 5 = 1  | 0000 0001  | |
1 * 2^0 = 1  | ||
-4 ^ 5  | ||
-4  | 1111 1100  | |
5  | 0000 0101  | |
按位异或运算  | ^  | |
规则:运算结果符号位是1,为负数, 需要减 1,再取反(其他运算也要遵循)  | ||
-4 ^ 5 =  | 1111 1001  | |
减1  | 1111 1000  | |
取反  | -0000 0111  | -4 ^ 5 = -7  | 
1 * 2^0 + 1 * 2^1 + 1 * 2^2 = -7  | ||
规则: 右边空出的位用 0 填补高位,左移溢出则舍弃该高位。  | ||
8 << 2  | ||
8  | 0000 1000  | |
<< 2  | 0010 0000  | |
左移运算符  | <<  | |
结果  | 8 << 2 = 32  | |
1 * 2^5 = 32  | ||
-8 << 2  | ||
-8  | 1111 1000  | |
<< 2  | 1110 0000  | |
左移运算  | <<  | |
规则:运算结果符号位是1,为负数, 需要减 1,再取反(其他运算也要遵循)  | ||
减1  | 1101 1111  | |
取反  | -0010 0000  | -8 << 2 = -32  | 
1 * 2^5 = -32  | ||
规则: 左边空出的位正数用 0 负数 1 填补,右移溢出则舍弃该低位。  | ||
8 >> 2  | ||
8  | 0000 1000  | |
>> 2  | 0000 0010  | |
左移运算符  | >>  | |
结果  | 8 >> 2 = 2  | |
1 * 2^1 = 2  | ||
-8 >> 2  | ||
-8  | 1111 1000  | |
>> 2  | 1111 1110  | |
左移运算  | >>  | |
规则:运算结果符号位是1,为负数, 需要减 1,再取反(其他运算也要遵循)  | ||
减1  | 1111 1101  | |
取反  | -0000 0010  | -8 >> 2 = -2  | 
1 * 2^1 = -2  | ||
规则: 正数与右移规则一样;负数无符号右移,在高位补 0  | ||
8 >>> 2  | ||
8  | 0000 1000  | |
>> 2  | 0000 0010  | |
无符号右移运算符  | >>>  | |
结果  | 8 >>> 2 = 2  | |
1 * 2^1 = 2  | ||
-8 >>> 2  | ||
-8  | 1111 1111 1111 1111 1111 1111 1111 1000  | |
>>> 2  | 0011 1111 1111 1111 1111 1111 1111 1110  | |
无符号右移运算符  | >>>  | |
规则:运算结果符号位是1,为负数, 需要减 1,再取反(其他运算也要遵循)  | ||
减1  | -  | |
取反  | -  | -8 >>> 2 = 1073741822  | 
1073741822  | ||
“Java中的位运算与移位运算有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。