python 数字转换成日期 python 8位数字转日期 | 您所在的位置:网站首页 › string怎么转成long › python 数字转换成日期 python 8位数字转日期 |
关于二进制,八进制和十六进制的转换和输出 如果要将一个整数转换为二进制,八进制或十六进制的文本字符串形式,只要分别使用内建的bin(), oct()和hex()函数就好,举个例子: >>> x = 1234567890 >>> bin(x) '0b1001001100101100000001011010010' >>> oct(x) '0o11145401322' >>> hex(x) '0x499602d2' >>>当然,如果你不喜欢出现0b,0o, 0x这样的字符,你可以使用format()函数: >>> format(x, 'b') '1001001100101100000001011010010' >>> format(x, 'o') '11145401322' >>> format(x, 'x') '499602d2' >>>当然,整数是有符号的,因此如果要处理负数的话,输出中也带上了一个符号: >>> x = -1234567890 >>> format(x, 'b') '-1001001100101100000001011010010' >>>如果你需要产生一个无符号的数值,你就需要加上最大值来设置比特位的长度,如果要将字符串形式的整数转换为不同的进制,只需要使用int()函数再配合适当的进制就好。 def bin_octal(): x = 1234 print(type(bin(x))) print(bin(x), oct(x), hex(x)) # format() function print(format(x, 'b')) print(format(x, 'o')) print(format(x, 'x')) print(int('4d2', 16)) print(int('10011010010', 2)) if __name__ == '__main__': bin_octal()从字节串中打包和解包大整数 假设我们有一个字节串,需要将其解包为一个整形数值,并且我们还需要将一个大整数打包为一个字符串。对于这种情况,我们先拆开分步来。 对于第一个问题,我们可以直接调用int.from_bytes()然后直接指定字节序就好: >>> data = b'\x00\x123V\x00x\x90\xab\x00\xcd\x3f\x01\x00#\x004' >>> len(data) 16 >>> int.from_bytes(data, 'little') 69120565665538368633411373192346538496 >>> int.from_bytes(data, 'big') 94502560111143632816500266485612596 >>>如果要将一个大的整数重新转换为字符串,可以使用int.to_bytes()方法,只需要指定字节数和字节序就好: >>> x = 6413675734567813446589673457863489571 >>> x.to_bytes(16, 'big') b'\x04\xd3:\xa0\xbbtK-`\x06\x96]\xe6\xc5\xf8#' >>> x.to_bytes(16, 'little') b'#\xf8\xc5\xe6]\x96\x06`-Kt\xbb\xa0:\xd3\x04' >>>在大整数和字节串之间相互转换的确不是什么常见的操作,但是有时候在特定应用的领域中会有这样的需求。在代码中是这样的: def int_bytes(): data = b'\x00\x124V\x00x\x90\xab\x00\xcd\xef\x01\x00#\x004' print(len(data)) print(int.from_bytes(data, 'little')) print(int.from_bytes(data, 'big')) x = 94522842520747284487117727783387188 print(x.to_bytes(16, 'big')) print(x.to_bytes(20, 'big')) # bit_length真有用 x = 523 ** 23 print(x) print(x.bit_length()) nbytes, rem = divmod(x.bit_length(), 8) if rem: nbytes += 1 print(x.to_bytes(nbytes, 'little')) if __name__ == '__main__': int_bytes()复数运算 我们的代码在同最新的web认证方案交互的时候遇到了奇点,照正常操作是在复平面里解决,但是也许只需要利用负数就可以完成。 复数可以通过complex(real, imag)函数来指定,或者可以通过浮点数再加上后缀j来指定也不是不行。举个例子:
complex_math() |
CopyRight 2018-2019 实验室设备网 版权所有 |