计算机基础 二进制、八进制、十六进制转换
1.二进制:
我们都知道计算机中所有的信息最终都是以二进制0和1表示
,而有些算法是通过操作bit位进行运算
。
举个栗子:
- 比如一个视频,如果仅让计算机以0和1这两种状态来表达这些数据,那是心有余而力不足。那么怎么办呢?这时候国际标准化就决定了,用
8个这样的状态来表示一个数据
。
也就是说:
-
一个数据 = 01010101(8个状态)
-
这样的由8个状态组成的数据就叫字节
1byte(字节) = 8bit(位,状态) 1kb = 1024 byte 1mb = 1024 kb 1g = 1024 mb 1tb = 1024 g
2.二进制转换十进制:
-
进位规则是'逢二进一',借位规则是'借一当二'
-
把对应的数加起来就可以了
-
举个栗子:
1.下面是一个二进制数:
2.每个进制位的角标,因为计算机角标从0开始算起:
3.计算每个进制的值,用二进制的每一位乘以基数的角标次方:
4.计算出每一位的值:
5.将它们相加即可:
-
可以使用bin()函数进行转换:
In [1]: bin(45) Out[1]: '0b101101'
3.二进制转换八进制:
-
我们知道一个字节需要8个二进制表示,有点长,那么用八进制来表示的话就会短一些。
1.比如下面有一个字节:
0101101
如果想把它变成八进制的话,
那就从右到左,每三位当作一个,左边的不够就补0
,也就是下面这样:000101101
2.把每三位的整体转换成十进制的数,就变成了八进制。
000 = 0 101 = 4 + 1 = 5 101 = 4 + 1 = 5
3.所以二进制0b000101101 = 八进制0055。
4.二进制转换十六进制:
-
同理,十六进制可以用更少的数来表示,如果想把0101101变成十六进制的话,
那就从右到左,每四位当做一个,最左边的不够就补0
。0010 1101 0010 = 2 1101 = 8 + 4 + 0 + 1 = 13 13=D 所以输出结果: 0X2D
5.不同的进制表达方式:
二进制是由[0,1 ]组成,通常以0b或-0b开头
八进制是由[0, 1, 2, 3, 4, 5, 6, 7]组成,通常以0开头
十进制是由[0 , 1, 2, 3, 4, 5, 6, 7, 8, 9, 0]组成
十六进制是由[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f]组成,以0X开头
6.总结:
- bin() 转换成 二进制
- int() 转换成 十进制
- hex() 转换成 十六进制
- oct() 转换成 八进制