位运算

位运算:

电脑不会错位 只会升位 溢出不算 

列长度为4

  0011   3

+1111  -1

1 0010 最前面一个1溢出不算去掉最前面一个1得到结果2

电脑上最低长度byte八位

11111111 -1 最大的负数

10000000 -128 最小负数

0没有补码 所以负数位比正数位多1 即-128~127

<<左移 3<<2==3*2*2==12

长度4位 0011>>2==1100==12

>>算术右移  3>>1==1==3/2

长度4位 0011>>1==0001==1

长度八位不能表示128最多只能127

10000000取反~01111111加1 10000000为-128

111000 56 11100>>2==001110==56/4==14

>>>逻辑右移

最前位用0补齐

0xa2>>>2==162/4==40

0xa2==10100010>>2==00101000==40

长度为8 前面用0补齐

当0xa2给定形势的时候 byte(0xa2)>>2

>>>只能用于int和long类型当用到short和byte的值时自动生成int型

当byte生成int型时int有32个字节最前面一个数是符号位 右移两位用0补齐

byte(0xa2)>>2==00111111111111111111111100101000(数字比较大用计算器算)

原文地址:https://www.cnblogs.com/liugangjiayou/p/10493372.html