我尝试使用以下命令在linux(linux mint,kali linux和ubunutu)上打印出十六进制内存位置:
printf "\xaa"
?
我得到的所有输出都是一个问号,这意味着我理解十六进制内存不被识别?
答案 0 :(得分:1)
printf "\xaa"
打印对应于十六进制代码“aa”的字符(十进制170),它与内存位置无关。
您看到的内容取决于终端的编码设置。如果您的终端配置为显示UTF-8,您可能会在菱形中看到问号:
�
这意味着字节序列aa
与任何UTF-8字符都不对应。
您还可以使用hexdump工具(例如xxd
)来显示输出的十六进制表示:
$ printf '\xaa' | xxd
0000000: aa .
例如,序列c2 a1
对LATIN SMALL LETTER A WITH ACUTE
进行编码:
$ printf '\xc3\xa1\n'
á