目录
一、十进制与二进制之间的转换练习
1、十进制转二进制
1.1、方法一
步骤如下:
- 10除以2 得5 余数为 0
- 再拿刚才的5除以2得2 余数为1
- 2除以2得1 余数为0
- 1除以2 直接余数为1
那么就为1010
1.2、方法二(推荐)
10 = 8 + 2 = 2^3 + 2^1
- 2^3 转化为二进制可以看做是1后面跟着后面3个零即 1000
- 2^1 转为为二进制可以看做是1后面跟着后面1个零即 10
1000
+ 10
————————
1010
位数对齐后相加,满二进位
2、二进制转十进制
2.1、方法一
1011
这是个二进制数,所以每个数都有2的影子。所以我们从右边数,
- 1=1*2^0等于1
- 1=1*2^1等于2
- 0=0*2^2等于0
- 1=1*2^3等于8
1+2+0+8=11
2.2、方法二(推荐)
1110
=1000 + 100 + 10
= 10^3 + 10^2 + 10^1
————————
然后二进制转为十进制,需要把底数10转为2得到
= 2^3 + 2^2 + 2^1=14
二、& (按位与)
3&5=1
&按位与的运算规则是将两边的数转换为二进制位,&有并且的意思,在这里是两个为1才1。1&0=0 , 0&1=0 , 0&0=0。把两个数的二进制数从右边开始对齐,3为11,5为101,只有第一个数1都为1所以3&5=1
3 & 5
11
101
———————— 001
001=1*2^0=1
三、|(按位或 )
3|5 =1
|按位或的运算规则是将两边的数转换为二进制位,|有或者的意思,在这里是两个数中有一个1就为1, 1|1 = 1 , 0|0 = 0 , 0|1 = 1。
3 | 5
11
101
———————— 111
111 = 1000 - 1 = 2^3 - 2^0 = 7
四、^(异或运算 )
3^5 =6
其运算规则为1^0 = 1 , 1^1 = 0 , 0^0 = 0。相等的为0,不相等的为1
3 ^ 5
11
101
———————— 110
五、<<(左移运算符)
5 << 2 = 20
5<<2的意思为5的二进制位往左挪两位,右边补0,5的二进制位是101 , 往左挪两位就是1 0100 。如果是负数,右边补1
或者看成 5* 2^2 = 20
六、>>(右移运算符)
5 >> 2 = 1,5的二进制位101
5>>2表示101右移2位,把最右边两位的01去掉,变为1,最后等于1。,等于除于2的n次方,结果为1
注意:正数左边第一位补0,负数补1
七、>>>(无符号右移运算符)
5 >>> 2 = 1
与右移运算符的区别就是在于负数的运算。往右移,正数左边第一位补0,负数也补0
八、~(取反运算符)
~5 = -6
取反就是1为0,0为1,5的二进制位是0000 0101,取反后为1111 1010,值为-6