2011-06-09 31 views
1

下面是輸出從od -cx傾倒(在Linux上,你可以用echo -ne "\r\n\n" |od -cx重現):爲什麼od不正確排序字節?

0000000 \r \n \n \0 
     0a0d 000a 
0000003 

正確的前2個字節應該是0d0a,但它輸出0a0d,爲什麼呢?

回答

4

因爲你在一個小端系統?一個16位整數將是高字節,後跟低字節;在這種情況下,第二個字節後跟第一個。

+0

little endian與ascii字符串無關,它隻影響多字節字符,對不對? – wireshark 2011-06-09 03:20:46

+0

它會影響任何多字節單元,而-x開關會導致od以十六進制方式轉儲16位單元。您注意到它正在以正確的順序轉儲ASCII碼。 – 2011-06-09 03:22:56

0

因爲您的計算機正在使用所謂的"little-endian"方法來表示內存中的單詞(x86處理器體系結構是小端系統的常見示例)。

0

因爲它讀取的是短褲而不是字節。短爲2個字節相反。

相關問題