Python内置base-256到base-10转换,反之亦然?

时间:2017-03-16 21:47:05

标签: python

< p>我想在文本文件中存储大数字(200-300位数字+),所以我想知道是否有内置函数将base-10数字转换为base-256当量,反之亦然在Python中,或者是否有一个支持它的模块(很像默认的hex()函数)。< / p>

2 个答案:

答案 0 :(得分:2)

整数有to_bytes - 方法:

base256 = number.to_bytes((number.bit_length()+7)//8, 'big')

number =int.from_bytes(base256, 'big')

答案 1 :(得分:1)

'Base256'本质上是二进制字节。虽然可以将结果解释为latin-1编码文本,但这似乎没有多大用处。所以我不会将生成的文件后缀为.txt。

除此之外,我们用来将struct模块转换为字节数据。一个相对简单的例子:

>>> import struct
>>> b = struct.pack('HhL', 33333, -33, 3333333333)
>>> b
b'5\x82\xdf\xffU\xa1\xae\xc6'
>>> struct.unpack('HhL', b)
(33333, -33, 3333333333)

写入或读取文件时,请记住以二进制模式打开。