int.from_bytes和int.to_bytes函数介绍
环境:Python3.5
1.int.from_bytes函数
- 功能:res = int.from_bytes(x)的含义是把bytes类型的变量x,转化为十进制整数,并存入res中。其中bytes类型是python3特有的类型。
- 函数参数:int.from_bytes(bytes, byteorder, *, signed=False)。在IDLE或者命令行界面中使用help(int.from_bytes)命令可以查看具体介绍。bytes是输入的变量;byteorder主要有两种:"big"和"little";signed=True表示需要考虑符号位。
- 举例说明:int_s = int.from_bytes(s, byteorder="little", signed=True),其中s="xf1xff",则输出int_s=-15。分析一下过程,"x"表示十六进制数,先把"f1"写成二进制数:1111 0001,"ff"同上:1111 1111.由于s的高低位标志是"little",即"f1"是低位,"ff"是高位,所以正确的顺序应该是"fff1",即11111111 1111 0001.又因为要考虑符号位,第一位是1,所以s是负数,要进行取反加一才是正确的十进制数(第一位符号位的1不变),可以得到10000000 00001111,写成十进制,就是-15,也就是int_s的结果。上面的例子中,如果signed=False,则无符号位;若byteorder="big",则输入s的左边是高位,右边是低位。
>>> s1 = b"xf1xff" >>> print(int.from_bytes(s1, byteorder="little", signed=True)) -15 >>> print(int.from_bytes(s1, byteorder="big", signed=False)) 61951 >>> s2 = b"xffxf1" >>> print(int.from_bytes(s2, byteorder="little", signed=False)) 61951
2.int.to_bytes函数
- 功能:是int.from_bytes的逆过程,把十进制整数,转换为bytes类型的格式。
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。