[英]big endian vs little endian
我在 64 位英特爾處理器上工作......我正在學習大端和小端,我的理解是這些是一個字內的字節順序,因此在 64 位數據中,msb 將具有大端形式的最低地址並且little endian 形式的最高地址......現在我有一個問題:
我寫了這段代碼
確定我的處理器是小端還是大端...
我輸入
0102030405060708 (this is in hex)
並希望得到08
和07
和06
以及...和01
作為答案
而是得到0
and 25
and 50
and -125
and -13
and 501
and -41
and 66
。
當我編寫相同的代碼時,將“s”作為 2 個字節(短), 0102
的 output 是2
和1
(符合小端法)...所以這里出了什么問題?
您將輸入值存儲為double
,它將值存儲為浮點值。 嘗試改用long long
,它是 64 位 integer,並且應該按預期存儲值。
將十六進制數轉換為(double)
不太可能達到您的預期; 它是一個浮點值,由以 2 為底的尾數和指數組成。 您可能會發現(long)
或(long long)
更接近您的預期。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.