GESP三级
本文最后更新于 2024-10-19,距文章上次修改已超2个月之久……请注意内容的时效性~~
进制
整型的四种进制形式区分:
- 十进制
- 二进制 0b
- 八进制 07
- 十六进制 0x
十进制->n进制 用短除法一直除以n 到商=0为止 将余数按倒序排列即可 >10的进制数用ABCDEFGHIJK···表示
n进制->十进制 按权求和 从小到大以0开始记 内一位*n的位权次方(我理解的嗯
**有小数的 *n的-x次方 可以理解为 *n的1/x^n**吧
不知道自己去看进制转换(对我自己说的嗯。。xixi
原码反码补码
二进制存储位数 不足八位在高位补0 最高位定正负 0正1负
位运算符
按位与:&
如果两个 相应位 同时为1 那么这位的结果为1 否则为0负数以补码形式参与运算负数以补码形式参与运算负数以补码形式参与运算
2 | 0000 0010 |
---|---|
5 | 0000 0101 |
结果 | 0000 0000 |
5 | 0000 0101 |
---|---|
3 | 0000 0011 |
结果 | 0000 0001 |
按位或:|
只要两个 相应位 有一个1 那么这位的结果为1 否则为0(负数以补码形式参与运算)
2 | 0000 0010 |
---|---|
5 | 0000 0101 |
结果 | 0000 0111 |
按位异或:^
如果两个 相应位 为《异(不同)》那么这位的结果为1 否则为0(负数以补码形式参与运算)
按位异或同一个值两次 原数不变
2 | 0000 0010 |
---|---|
5 | 0000 0101 |
结果 | 0000 0111 |
左移
在二进制八位数的右边补0并舍去最高位使数位为8
栗子(反正[此时的]我知道怎么算栗子只能这么举看不懂。凉拌
0000 0001 << 5 :** (补5个0 )0000 0001 00000 **-> (舍去左边0) 0010 0000
右移
在二进制八位数的左边补0并舍去右边部分数使数位为8
1100 0000 >> 3 : (补0) 000 1100 0000 -> (舍去)0001 1000
题
因为二进制数的最后两位表示的是 2 的 1 次方和 2 的 0 次方的权重 所以最后两位为0这个数就一定是4的倍数
因为&运算需要两位都为1求出的值才是1
3的二进制是0000 0011 通过**~**取反得 1111 1100
这样无论如何最后两位都不可能是1