binary 二进制 : 0b 表示二进制
octonary 八进制:0o 八进制
int 十进制
hex 十六进制:hex 十六进制
正数的原码=反码=补码
负数 :最高位0表示正,1表示负;
反码为符号为不变,其余位取反;
补码为反码+1
eg:-3
原码:1000 0011
反码:1111 1100
补码:1111 1101
通过位运算求负数的补码:
& 与 与运算:都为1是为1,其余为0;
| 或 或运算 都为0时为0,其余为1;
-
^ 异或 相同时为1,不同为0;
- 取反 1为0,0为1;
n<0, n& 0bffffffff
eg:-3
原码 1000 0011
& 1111 1111
——————————
= 1000 0011
这里有误,为什么 与 运算求的负数补码有问题?
修改:暂时不知:
直接转化十进制为其它进制数的函数:
bin() 二进制化
octo() 八进制化
int()
hex() 十六进制化