如果我在 golang 中執行以下操作:data := []byte{}data = append(data, '1')data = append(data, '2')fmt.Printf("%d\n", len(data))fmt.Printf("%x\n", fmt.Sprintf("%d", len(data)))我分別得到 2 和 32,而不是兩行都只有 2(顯然數組只有兩個元素)。如果我做一些類似的事情:bytes memory encodedPack = abi.encodePacked(prefix, length, signedMessage)該encodePacked函數還在最終字節數組中的長度前加上 3。根據 ASCII 表,3 表示“文本結束”。這是這個3的目的嗎?
1 回答

蕭十郎
TA貢獻1815條經驗 獲得超13個贊
Sprintf()
返回一個字符串。您正在打印 ASCII 中的字符串“2” 0x32
。
這里的 3 不是文本結尾。如果查看 ASCII 表,您會注意到字符“0”到“9”被編碼為 un 0x30
til 0x39
。
- 1 回答
- 0 關注
- 121 瀏覽
添加回答
舉報
0/150
提交
取消