1.int.bit_length():返回以二进制表示一个整数所需要的位数,不包括符号位和前面的零
n=37
print(bin(n)) #0b100101
print(n.bit_length()) #6
n=-37
print(bin(n)) #-0b100101
print(n.bit_length()) #6
n=0
print(bin(n)) #0b01
print(n.bit_length()) #0
2.int.to_bytes(length, byteorder, *, signed=False):返回表示一个整数的字节数组
length--表示字节数
byteorder--确定用于表示整数的字节顺序,如果 byteorder 为 "big",则最高位字节放在字节数组的开头;如果 byteorder 为 "little",则最高位字节放在字节数组的末尾
signed--确定是否使用二的补码来表示整数; 如果 signed 为 False 并且给出的是负整数,则会引发 OverflowError;signed 的默认值为 False
n=37
print(n.to_bytes(2,byteorder="big")) #b'\x00%'
n=2015
print(n.to_bytes(2,byteorder="big")) #b'\x07\xdf'
n=37
print(n.to_bytes(10,byteorder="big")) #b'\x00\x00\x00\x00\x00\x00\x00\x00\x00%'
n=2015
print(n.to_bytes(10,byteorder="big")) #b'\x00\x00\x00\x00\x00\x00\x00\x00\x07\xdf'
n=37
print(n.to_bytes(10,byteorder="little")) #b'%\x00\x00\x00\x00\x00\x00\x00\x00\x00'
n=2015
print(n.to_bytes(10,byteorder="little")) #b'\xdf\x07\x00\x00\x00\x00\x00\x00\x00\x00'
n=37
print(n.to_bytes(10,byteorder="big",signed=False)) #b'%\x00\x00\x00\x00\x00\x00\x00\x00\x00'
n=2015
print(n.to_bytes(10,byteorder="big",signed=True)) #b'\x00\x00\x00\x00\x00\x00\x00\x00\x07\xdf'
3.int.from_bytes(bytes, byteorder, *, signed=False):返回由给定字节数组所表示的整数
bytes--必须为一个 bytes-like object 或是生成字节的可迭代对象。
byteorder--确定用于表示整数的字节顺序,如果 byteorder 为 "big",则最高位字节放在字节数组的开头,如果 byteorder 为 "little",则最高位字节放在字节数组的末尾
signed--指明是否使用二的补码来表示整数
n=b'\x00%'
print(int.from_bytes(n,byteorder="big")) #37
n=b'\x07\xdf'
print(int.from_bytes(n,byteorder="big")) #2015
n=b'\x00\x00\x00\x00\x00\x00\x00\x00\x00%'
print(int.from_bytes(n,byteorder="big")) #37
n=b'\x00\x00\x00\x00\x00\x00\x00\x00\x07\xdf'
print(int.from_bytes(n,byteorder="big")) #2015
n=b'\x00\x00\x00\x00\x00\x00\x00\x00\x07\xdf'
print(int.from_bytes(n,byteorder="little")) #1053216852888446849515520
n=b'%\x00\x00\x00\x00\x00\x00\x00\x00\x00'
print(int.from_bytes(n,byteorder="little")) #37
n=b'\xdf\x07\x00\x00\x00\x00\x00\x00\x00\x00'
print(int.from_bytes(n,byteorder="little")) #2015
n=b'%\x00\x00\x00\x00\x00\x00\x00\x00\x00'
print(int.from_bytes(n,byteorder="big",signed=False)) #174727559866176872906752
n=b'\x00\x00\x00\x00\x00\x00\x00\x00\x07\xdf'
print(int.from_bytes(n,byteorder="big",signed=True)) #2015
4.int.as_integer_ratio():返回一对整数,其比率正好等于原整数并且分母为正数。用这个整数本身作为分子,1 作为分母
n=1
print(n.as_integer_ratio()) #(1, 1)
n=0
print(n.as_integer_ratio()) #(0, 1)
n=10
print(n.as_integer_ratio()) #(10, 1)
n=-10
print(n.as_integer_ratio()) #(-10, 1)
5.float.as_integer_ratio():返回一对整数,其比率正好等于原浮点数并且分母为正数。 无穷大会引发 OverflowError 而 NaN 则会引发 ValueError
n=1.0
print(n.as_integer_ratio()) #(1, 1)
n=0.1
print(n.as_integer_ratio()) #(3602879701896397, 36028797018963968)
n=10.25
print(n.as_integer_ratio()) #(41, 4)
n=-10.25
print(n.as_integer_ratio()) #(-41, 4)
n=1/3
print(n.as_integer_ratio()) #(6004799503160661, 18014398509481984)
6.float.is_integer():如果浮点数可用有限位整数表示则返回 True,否则返回 False
n=1.0
print(n.is_integer()) #True
n=0.1
print(n.is_integer()) #False
n=10.000
print(n.is_integer()) #True
7.float.hex():以十六进制字符串的形式返回一个浮点数表示
n=1.0
print(n.hex()) #0x1.0000000000000p+0
n=0.1
print(n.hex()) #0x1.999999999999ap-4
n=10.000
print(n.hex()) #0x1.4000000000000p+3
8.classmethod float.fromhex(s):返回以十六进制字符串 s 表示的浮点数的类方法,字符串 s 可以带有前导和尾随的空格
n="0x1.0000000000000p+0"
print(float.fromhex(n)) #1.0
n="0x1.999999999999ap-4"
print(float.fromhex(n)) #0.1
n="0x1.4000000000000p+3"
print(float.fromhex(n)) #10.0
来源:CSDN
作者:grace666
链接:https://blog.csdn.net/grace666/article/details/103480846