0
点赞
收藏
分享

微信扫一扫

【位运算】

八怪不姓丑 2022-05-06 阅读 58

常用的位运算

位运算符说明计算案例
&都是1为1, 否则即为 04 & 3 = 0100 & 0011 = 0000 == 0
|有一个为1就是14 & 3 =》 0100 | 0011 = 0111 == 7
^异或不同为1 相同为07 & 3 =》 0111 ^ 0011 = 0100 == 4
~取反二进制的0变成1,1变成0~4 = 11111111111111111111111111111011 = -5
<<左移左移后右边位补 01<<3 = 8
>>带符号右移右移后左边位补符号位-8>>2 = -2
>>>不带符号右移右移后左边位补 0-8>>>2 = 2

正数的原码、反码、补码都是二进制本身;
负数反码就是原码除了符号位不动,其他所有位按位取反
负数的补码是反码加一得到的(运算时包括符号位)

数值原码反码补码
+80000 10000000 10000000 1000
-81000 10001111 01111111 1000

在计算机中,数值都是用补码来计算和存储的。使用补码的原因是:

  1. 使用补码可以将符号位和数值域统一处理
  2. 在硬件电路的实现上,只要使用一种加法电路就可以处理各种有符号数的加减计算,使得电路设计简单

打印int类型的位信息

int类型占用4字节一共32位bit, 打印31位到0位的bit位,1左移之后 其他的bit位都是0,如果31位与num等于0 则31位肯定是0

for (int i = 31; i >= 0 ; i--) {
    System.out.print( (num & (1<<i)) == 0 ? "0" : "1");
}
举报

相关推荐

位运算(&、|、^、~、>>、<<)

位运算

逻辑运算 位运算

位运算操作

java 位运算

认识 位运算

0 条评论