下面是輸出從od -cx
傾倒(在Linux上,你可以用echo -ne "\r\n\n" |od -cx
重現):爲什麼od不正確排序字節?
0000000 \r \n \n \0
0a0d 000a
0000003
正確的前2個字節應該是0d0a
,但它輸出0a0d
,爲什麼呢?
下面是輸出從od -cx
傾倒(在Linux上,你可以用echo -ne "\r\n\n" |od -cx
重現):爲什麼od不正確排序字節?
0000000 \r \n \n \0
0a0d 000a
0000003
正確的前2個字節應該是0d0a
,但它輸出0a0d
,爲什麼呢?
因爲你在一個小端系統?一個16位整數將是高字節,後跟低字節;在這種情況下,第二個字節後跟第一個。
因爲您的計算機正在使用所謂的"little-endian"方法來表示內存中的單詞(x86處理器體系結構是小端系統的常見示例)。
因爲它讀取的是短褲而不是字節。短爲2個字節相反。
little endian與ascii字符串無關,它隻影響多字節字符,對不對? – wireshark 2011-06-09 03:20:46
它會影響任何多字節單元,而-x開關會導致od以十六進制方式轉儲16位單元。您注意到它正在以正確的順序轉儲ASCII碼。 – 2011-06-09 03:22:56