2020-09-15

Python学习心得2020.9.15

二进制:

位:数据存储最小单元,一字节(byte)=8位(bit)。

无符号数:没有符号位,所有二进制均表示数值。

有符号数:最高位表示符号,0为正,1为负。

原码、补码和反码(有符号数)

正数:原码、反码、补码都一样

负数:反码–符号位不变,其余位取反;补码–反码+1

计算机运算的时候,都是以补码的方式来运算的,因为二进制数在内存中是以补码的形式存放的;

按位与 a&b   1&1->1

按位或 a|b    1|1/1|0/0|1 ->1

按位异或 a^b   10/01->1

按位取反 ~a  1=>0/0->1 正数的取反等于正数加1取负,例如11的取反等于-12;负数的取反等于负数加1取正,例如-12的取反等于11

左移 a<2^b,因为在二进制数后添一个0就相当于该数2

带符号右移 a>>b  舍弃二进制后面b位,正数高位补0,负数高位补1,结果值为a/2^b(取整)

无符号右移a>>>b  无论是正数还是负数,高位通通补0
关于位运算反码补码的总结:正的反码和补码都是原码;负数的补码是反码加1,反码是原码符号位不变,其他位取反
为什么计算机存储数据的时候存补码?:因为计算机中只有加法器,只能进行加操作。存原码对负数进行加操作的时候有问题
计算存数字存补码,计算的时候也是补码,最后结果看的时候看原码
位运算符:&(按位与),|(按位或), ^(异或), ~(取反), >>(右移), <<(左移)

你可能感兴趣的:(学习心得,python,补码)