10进制转2进制
例:10/2=5...0 5/2=2...1 2/2=1...0 1/2=0...1
余数从右往左 1010
原码:0000 1010
8位2进制 最前面一位0是正数,1是负数 超过8位使用16位2进制
2进制转10进制(从右往左乘以2的0次方到n次方,值相加)
例:0 0 0 0 1 0 1 0
128 64 32 16 8 4 2 1 上面乘以下面
8 2 最下面相加=10
原码转反码 正数不变 负数第一位不变剩余取反
反码转补码 正数不变 负数+1
例:-10
原码:1 0 0 0 1 0 1 0
反码:1 1 1 1 0 1 0 1
补码:1 1 1 1 0 1 1 0
补码转原码:
正数的补码反码都是一样的
代表负的第一个数不变其他数取反再加1
1 0 0 0 1 0 0 1 +1
1 0 0 0 1 0 1 0 =10进制的 -1
~按位取反 工作原理
a=10 b=~a
0000 1010 这是a的原码
1111 0101这是取反后b的补码
1000 1011补码转b的原码
转换成10进制等于-11
<<向左位移
a=10 b=3
c=a<<b
公式:c=a乘2的b次方
C= 10×2的3次方=80
0000 1010
0101 0000
>>向右位移
公式:c=a÷2的b次方
C=10÷2的3次方=1 保留正数 不够1算0
0000 1010
0000 0001