左移位右移位
结论:(针对于整数?正数?)左移一位相当于✖️2,右移一位相当于➗2(即 // 2 除2后向下取整)
下文以移动2位段为例子进行论证:
| - | 左移 | 右移 |
|---|---|---|
| 符号 | << | >> |
| 对于正数 | 高位丢失,低位补0 | 低位丢失,高位补0 |
| 对于负数 | 高位丢失,低位补0 | 低位丢失,高位补1 |
原码、补码、反码
原码:将值转换为相对于的二进制形式
补码/反码是对原码进行某种转换编码方式
符号位:1表示正,0表示负,原码最高位为符号位
| - | 正整数 | 负数 |
|---|---|---|
| 原码 | - | - |
| 反码 | 同原码 | 原码除符号位外其他位进行取反操作 |
| 补码 | 同原码 | 反码末尾+1 |
⚠️计算机使用补码进行运算
由于计算机内只有加法器,没有减法器,在计算减法运算时,需要通过转换成加上“减数相反数”的形式,因此引入了补码运算
列子:16-8 = 16+(-8)
在计算机中,以补码运算,需要把16的补码与-8的补码相加…,如下图:

进制转换
十进制转二进制
不断除以2...直到为0,然后倒序记录
如下:

二进制转十进制
通用公式如下:
abcd.efg(二进制)=d*2^0+c*2^1+b*2^2+a*2^3+e*2^-1+f*2^-2+g*2^-3(十进制)
如下所示:

运用
求奇偶
a=2
b=3
if (a&1):
print("是奇数")
原理:
可知奇数转为二进制,最后一位一定是1, 这时候奇数再与1进行与运算,最后一位与运算的结果一定是1,又如前面可是,二进制最后一位是1的,才是奇数。所以可以通过与运算求奇偶

4793

被折叠的 条评论
为什么被折叠?



