python 数字转换成日期 python 8位数字转日期 您所在的位置:网站首页 string怎么转成long python 数字转换成日期 python 8位数字转日期

python 数字转换成日期 python 8位数字转日期

2023-05-27 20:35| 来源: 网络整理| 查看: 265

关于二进制,八进制和十六进制的转换和输出

如果要将一个整数转换为二进制,八进制或十六进制的文本字符串形式,只要分别使用内建的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来指定也不是不行。举个例子:

python 数字转换成日期 python 8位数字转日期_大整数in__':

complex_math()



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有