知识点补充
进制¶
在计算机语言中常用的进制有二进制、八进制、十进制和十六进制,十进制是最主要的表达形式。
十进制
十进制的基数是:0~9
运算规则是:满十进一,借一当十
二进制
二进制的基数是:0~1
运算规则是:满二进一,借一当二
八进制
八进制的基数是:0~7
运算规则是:满八进一,借一当八
十六进制
十六进制的基数是:09+AF
运算规则是:满十六进一,借一当十六
进制之间转换
例子1:将二进制数(10010)2转化成十进制数。
例子2:将十进制数(120)10转化成八进制数。
例子3:将十进制数(120)10转化成十六进制数。
例子4:将十六进制数(0xff)16转化成二进制数。
位运算¶
计算机中的数在内存中都是以二进制形式进行存储的 ,而位运算就是直接对整数在内存中的二进制位进行操作,因此其执行效率非常高
符号 | 描述 | 运算规则 |
---|---|---|
& | 按位与 | 两个位都为1,结果才为1 |
| | 按位或 | 两个位都为0,结果才为0 |
^ | 异或 | 两个位相同为0,相当异为1 |
~ | 取反 | 0变1,1变0 |
<< | 左移 | 二进制位全部左移若干位 |
>> | 右移 | 二进制位全部右移若干位 |
struct¶
Python提供了一个struct
模块来解决bytes
和其他二进制数据类型的转换。
主要方法:
pack¶
把任意数据类型转换成bytes
格式:
pack(fmt, *args)
unpack¶
把bytes
转换成相应的数据类型
格式:
unpack(fmt, string)
符号¶
字节顺序符号:
符号 | 字节顺序 |
---|---|
< | 小端 |
> | 大端 |
格式类型符号:
格式 | C 类型 | python类型 | 大小 |
---|---|---|---|
b | signed char | 整数 | 1 |
B | unsigned char | 整数 | 1 |
i | int | 整数 | 4 |
I | unsigned int | 整数 | 4 |