python核心编程之进制与位运算
该文档仅用作学习笔记,转载请表明出处
定义
1.进制:进制也就是进位计数制,是人为定义的带进位的计数方法。
2.进位制/位置计数法是一种记数方式,故亦称进位记数法/位值计数法,可以用有限的数字符号 代表所有的数值。可使用数字符号的数目称为基数(en:radix)或底数,基数为n,即可称n进位制,简称n进制。现在最常用的是十进制,通常使用10个阿拉伯数字0-9进行记数。
常用进制
二进制 :逢2进1,有0与1组成。
八进制 :逢8进1
十进制 :逢10进1
十六进制:逢16进1,9之后是“abcdef”
原码,反码,补码
1.原码:原码(true form)是一种计算机中对数字的二进制定点表示方法。原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小。
2.反码:反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,【包含符号位】。
3.补码:显然,8位二进制数,它的模数为2^8=256。在计算中,两个互补的数称为“补码”。即为反码加1
例1:
+1的原码: 0000 0000 0000 0000
-1的原码: 1000 0000 0000 0001
-1的反码: 1111 1111 1111 1110
-1的补码: 1111 1111 1111 1111
例2:
计算 -1+1的结果:
0000 0000 0000 0001
1111 1111 1111 1111
————————————————
0000 0000 0000 0000
补码和原码的转换问题
负补码转换回原码:
原码=补码的符号位不变 --> 数据位取反 --> 尾+1
例:
-1的补码:1111 1111 1111 1111
取 反 : 1000 0000 0000 0000
-1的原码:1000 0000 0000 0001
位运算
位运算的介绍
- & 按位与
- | 按位或
- ^ 按位异或
- ~ 按位取反
- <<按位左移
-
按位右移