我知道array.tostring给出了机器值数组。但我想弄清楚他们是如何被代表的。
e.g
onSuccess
在这里,我知道'l'意味着每个索引最小为4个字节,这就是我们在tostring表示中有4个字节的原因。但为什么最重要的位填充>>> a = array('l', [2])
>>> a.tostring()
'\x02\x00\x00\x00'
。不应该是\x02
'吗?
'\x00\x00\x00\x02
这里我猜测开头的2是因为50是2的ASCII值,那么为什么我们没有相应的char值为3的ASCII值,即Ctrl-C
答案 0 :(得分:1)
但为什么最重要的位填充了
\x02
。不应该是'\x00\x00\x00\x02'
吗?
\x02
中的'\x02\x00\x00\x00'
不是最重要的字节。我想你会把它读作十六进制数字,其中最重要的数字位于左侧,这让你很困惑。这不是array
返回的array.tostring()
的字符串表示的工作原理。所表示的值的字节以从最低有效到最高有序的顺序从左到右放在一起。只需将数组视为字节列表,第一个(或更确切地说,第0个)字节位于左侧,就像常规python列表中一样。
为什么我们没有ASCII值为3的对应字符,即Ctrl-C?
您是否有任何示例,其中python表示 Ctrl-C 后面的字符为Ctrl-C
或类似?由于ASCII码3对应于不可打印的字符,并且没有相应的转义序列,因此它通过其十六进制代码表示。