python 字符转换

我们所看到的“明文字符串”,都是经过编码(比如ASCII、Uncoded、UTF-8、GB-2312等)后呈现在我们面前的。

文本中“3082”想要“所见到所得”到内存中处理,必须decode('hex')一下(把字符串处理成内存中表面“相同”的二进制),表示成“x30x82"(类似编译器的东西将"x"格式的"字符串"转化成数值,在我们看来这个就是内存中的数值,将其赋值给一个变量可以用下标索引(可以用ord函数转为值),或者切片);否则其在内存中存储的是"x33x30x38x32"。(即decode()函数2个变一个,处理的数据必须是偶数)

sublime默认会个可视字符串文件加一个回车字符,Win下是" "--"x0dx0a",linux下是" "--"x0a"

相反:

“x30x82"在内存中,打印不出来可见串(可以写文件验证),所以要以可见串的形式打印,这时候用encode('hex')--将内存中的二进制以“表面相同”的字符串打印,呈现给我们,

"x30x82" encode('hex')-> "3082" encode('hex')-> "33303832"

==============================================================

字符串转换一个大数,用int("",16)。 数值没有encode和decode方法,只有“字符串”有

数值要读写文件或者打印,必须转化成字符串:str(n)

内存数据转大数:

'x10x12x13x14...'转成大数,先encode(‘hex’),再int(,16)。如:

sig = int(cert[-0x80:].encode('hex'),16)

原文地址:https://www.cnblogs.com/xunbu7/p/5630975.html