码迷,mamicode.com
首页 > 编程语言 > 详细

java中二进制相关运算

时间:2019-11-26 17:51:21      阅读:90      评论:0      收藏:0      [点我收藏+]

标签:移位   一个   正数   amp   parse   原码   无符号   back   进制   

1.计算十进制数的二进制
int i1=Integer.parseInt("11",2);//11的二进制
41---》41=32+8+1=2^5+2^3+1
          0000   0000  0010  1001(正数补0)
-41
绝对值相同的正负数的原码(除符号位)相同
(正数的原码 补码 反码相同)
负数的反码等于原码取反
负数的补码等于原码取反再加1
                                   10  1001
                         取反   01  0110(反码)
                                   01  0111  
             1111 1111 1101  0111 (负数补1)

2.&运算
全为1 才为1
0&1 0
0&0 0
1&1 1

-16 & -12
-16:
 1111 1111 1111  1111   1111  1111   1111  0000
 1111 1111 1111 11111  1111   1111  1111  0100
 1111 1111 1111 11111  1111   1111  1111  0000 -16
3.|运算
有一个为1为1
0|1 1
0|0 0
1|1 1
-9 | -12
1111 1111 1111 1111 1111 1111 1111 0111
1111 1111 1111 1111 1111 1111 1111 0100
1111 1111 1111 1111 1111 1111 1111 0111 -9
4.~按位取反
0变1,1变0
5.^异或
相同为0 不同为1
1^1 0
1^0 1
0^0 0

8^12
0000 0000 0000 0000 0000 0000 0000 1000
0000 0000 0000 0000 0000 0000 0000 1100
0000 0000 0000 0000 0000 0000 0000 0100
 
6.>>移位运算
>>右移 左移<<
8>>3:
0000 0000 0000 0000 0000 0000 0000 1000
0000 0000 0000 0000 0000 0000 0000 0001

-37>>4
 1111 1111 1111  1111   1111  1111 1101 1011
 1111 1111 1111 1111  1111   1111  1111 1101 -3

12<<2
  0000 0000 0000 0000 0000 0000 0000 1100
  0000 0000 0000 0000 0000 0000 0011 0000 48

-4<<3
100
011
1111 1111 1111 1111 1111 1111 1111 1100
1111 1111 1111 1111 1111 1111 1110 0000 -32
无符号移位(高位补0)
15>>>3
0000 0000 0000 0000 0000 0000 0000 1111
0000 0000 0000 0000 0000 0000 0000 0001
-12>>>2
1100
0011
1111 1111 1111 1111 1111 1111 1111 0100
0011 1111 1111 1111 1111 1111 1111 1101

java中二进制相关运算

标签:移位   一个   正数   amp   parse   原码   无符号   back   进制   

原文地址:https://www.cnblogs.com/yxj808/p/11937012.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!