一站式学会——进制转换与位运算符详解(通俗易懂)
目录
1. 进制
1.1 进制介绍
1.2 进制的图示
2. 进制的转换
2.1 进制的转换介绍
2.2 其他进制转十进制
2.3 十进制转其他进制
2.4 二进制转成八进制,十六进制
2.5 八进制,十六进制转成二进制
3. 位运算符的思考题(先引出问题)
4. 二进制在运算中的说明
5. 原码,反码,补码(难点,重点)
6. 位运算符
6.1 位运算符一览
6.2 &、|、^、~
6.3 >> 、<<
1. 进制
1.1 进制介绍
--对于整数,有如下表示方式
-
2进制:0,1,满2进1.以0b或0B开头。
-
8进制:0-7,满8进1.以数字0o或者00开头表示。
-
10进制:0-9,满10进1。
-
16进制:0-9及A(10)-F(15),满16进1.以0x或0X开头表示。此处的A-F不区分大小写
# 输出后都自动转换成十进制
#2进制
print(0b111)
print(0B111)
#8进制
print(0o111)
print(0O111)
#10进制
print(111)
#16进制
print(0x111)
print(0X111)
1.2 进制的图示
2. 进制的转换
2.1 进制的转换介绍
2.2 其他进制转十进制
1. 二进制转换成十进制实例
规则:从最低位(右边)开始,将每个位上的数提取出来,乘以2的(位数-1)次方,然后求和。
2. 八进制转换成十进制实例
规则:从最低位(右边)开始,将每个位上的数提取出来,乘以8的(位数-1)次方,然后求和。
3. 十六进制转换成十进制
规则:从最低位(右边)开始,将每个位上的数提取出来,乘以16的(位数-1)次方,然后求和。
4. 课堂练习
2.3 十进制转其他进制
1. 十进制转换成二进制
规则:将该数不断除以2,直到商为0为止,然后将每步得到的余数倒过来,就是对应的二进制
2. 十进制转换成八进制
规则:将该数不断除以8,直到商为0为止,然后将每步得到的余数倒过来,就是对应的八进制
3. 十进制转换成十六进制
规则:将该数不断除以16,直到商为0为止,然后将每步得到的余数倒过来,就是对应的十六进制
4. 课堂练习
2.4 二进制转成八进制,十六进制
四位最大表示15,三位最大是7,刚好和十六进制和八进制对应
1. 二进制转换成八进制
规则:从低位开始,将二进制数每三位一组,转成对应的八进制数即可。
2. 二进制转换成十六进制
规则:从低位开始,将二进制数每四位一组,转成对应的十六进制数即可。
3. 课堂练习
2.5 八进制,十六进制转成二进制
1. 八进制转换成二进制
规则:将八进制数每1位,转成对应的一个3位的二进制数即可
2. 十六进制转换成二进制
规则:将十六进制数每1位,转成对应的4位的一个二进制数即可
3. 课堂练习
3. 位运算符的思考题(先引出问题)
4. 二进制在运算中的说明
基本介绍:
-
二进制是逢2进位的进位制,0、1是基本数字符号
-
现代的电子计算机技术全部采用的是二进制,因为它只使用0、1两个数字符号,非常简单方便,易于用电子方式实现
-
计算机内部处理的信息,都是采用二进制数来表示的。二进制(Binary)数用0和1两个数字及其组合来表示任何进位规则是"逢2进1",数字1在不同的位上代表不同的值。
5. 原码,反码,补码(难点,重点)
1. 二进制的最高位是符号位:0表示正数,1表示负数
2. 正数的原码,反码,补码都一样(三码合一)
3. 负数的反码=他的原码符号位不变,其他位取反(0->1 1>0)
4. 负数的补码=它的反码+1,负数的反码=它的补码
5. 0的反码,补码都是0
6. 在计算机运算的时候,都是以补码的方式来运算的
7. 当我们要看运算结果的时候,要看它的原码
6. 位运算符
6.1 位运算符一览
6.2 &、|、^、~
~按位取反
~规则:对数据的每个二进制位取反,即把1变为0,把0变为1
分析~-2、~2的结果是多少?
2. &按位与
&规则:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0
分析2&3的结果是多少?
3. ^ 按位异或
规则:当两对应的二进位相异时,结果为1
分析2^-3的结果是多少?
4. |按位或
|规则:只要对应的二个二进位有一个为1时,结果位就为1
分析2|3的结果是多少?
6.3 >> 、<<
1. <<左移(左移一位相当于操作数*2)
<<规则:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,符号位不变,高位丢弃,低位补0
分析5<<1、-5<<1的结果是多少?
2. >>右移(右移一位相当于操作数//2整除)
>>规则:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数,低位溢出,符号位不变,并用符号位补溢出的高位
分析5>>1、-5>>1的结果是多少?