考虑php中的以下语句的输出
hex2bin(dechex(4112))
此输出
"\020\020"
我已经明白这是上面十进制值(4112
- > 0x1010
)的十六进制表示的八进制表示,每个八进制部分都是反斜杠之间的东西。因此,三个八进制数字用于表示两个十六进制数字。这里0x10
转换为八进制的020
,因此\020\020
0x1010
但这种编码的名称是什么?它从何而来?在互联网上搜索这个没什么帮助
为什么以下声明失败?
hex2bin(dechex(123123))
答案 0 :(得分:1)
您将数字编码为二进制数据,使得最重要的字节成为第一位。这称为big-endian representation.
使用您的方法编码123123失败,因为dechex产生奇数个数字。您需要两个十六进制数字来生成一个字节,因此hex2bin要求输入字符串具有偶数长度。