Python计算补码函数 python补位函数

python中的按位取反运算按位取反运算符:~
运算结果:~x=-(x+1)
例如:~9为-10
~(-9)为8
这不是按位取反吗?怎么结果是这样?
看下面 。
转二进制:0 1001
计算补码:0 1001
要知道它所表达的数是多少,需要转换为原码
_____
转为原码:按位取反:1 1001
末位加一:1 1010
符号位为1是负数,即-10
转二进制:1 1001
计算补码:1 0111
要知道它所表达的数是多少,需要转换为原码____
转为原码:正数的补码和原码相同,仍为:0 1000,即8
求python取原码、补码、反码的方法或函数原码:原码是二进制数字的一种简单的表示法 。二进制首位为符号位,1代表负,0代表正 。
反码:反码可由原码得到 。如果是正数,反码与原码相同;如果是负数,反码是其原码(符号位除外)各位取反而得到的 。
补码:补码可由原码得到 。如果是正数,补码与原码相同;如果是负数,补码是对其原码(除符号位外)各位取反,并在末位加1而得到的(有进位则进位 , 但不改变符号位) 。
python有按位取反的操作符:~但是对负整数要小心操作,因为在计算机系统中,数值一律用补码来表示和存储的 。
python中的进制转换和原码,反码,补码python中的进制转换和原码,反码,补码
计算机文件大小单位
b = bit 位(比特)
B = Byte 字节
1Byte = 8 bit #一个字节等于8位 可以简写成 1B = 8b
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
1PB = 1024TB
1EB = 1024PB
进制分类
二进制:由2个数字组成,有0 和 1 python中标志:0b
八进制:由8个数字组成,有0,1,2,3,4,5,6,7 python中标志:0o
十进制:有10个数字组成,有0,1,2,3,4,5,6,7,8,9 python中标志:无
十六进制:有16个数字组成,有0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f(进制字母大小写都可以,分别代表10,11,12,13,14,15) python中标志:0x
python中的进制转换:
其他进制转换为十进制:int(相应进制)
其他进制转换为二进制:bin(相应进制)
其他进制转换为八进制:oct(相应进制)
其他进制转换为十六进制:hex(相应进制)
二进制 转化成 十进制:
例: 0b10100101
运算:1* 2^0 + 0* 2^1 + 1* 2^2 + 0* 2^3 + 0* 2^4 + 1* 2^5 + 0* 2^6 + 1* 2^7=
1 + 0 + 4 + 0 + 0 + 32 + 0 + 128 = 165
八进制 转化成 十进制:
例: 0o127
运算:7*8^0 + 2*8^1 + 1*8^2 = 7+16+64 = 87
十六进制 转化成 十进制:
例: 0xff
运算:15*16^0 + 15*16^1 = 255
十进制 转化成 二进制:
426 = 0b110101010
运算过程: 用426除以2,得出的结果再去不停地除以2,
直到除完最后的结果小于2停止,
在把每个阶段求得的余数从下到上依次拼接完毕即可
十进制 转化成 八进制:
426 = 0o652
运算过程: 用426除以8,得出的结果再去不停地除以8,
直到除完最后的结果小于8停止,
在把每个阶段求得的余数从下到上依次拼接完毕即可
十进制 转化成 十六进制:
运算过程: 用426除以16,得出的结果再去不停地除以16,
直到除完最后的结果小于16停止,
在把每个阶段求得的余数从下到上依次拼接完毕即可 。
相关推荐:《Python视频教程》
原码,反码,补码
实际人们看到的数字是原码转化之后显示出来的 。
而原码是通过补码得到的 。
计算机的所有数据在底层都是以二进制的补码形式存储 。
***进制转换的时候需要先把内存存储的补码拿出来变成原码在进行转换输出***
反码:二进制码0变1,1变0叫做反码,反码用于原码补码之间的转换 。

推荐阅读