簡體   English   中英

大端與小端

[英]big endian vs little endian

我在 64 位英特爾處理器上工作......我正在學習大端和小端,我的理解是這些是一個字內的字節順序,因此在 64 位數據中,msb 將具有大端形式的最低地址並且little endian 形式的最高地址......現在我有一個問題:

我寫了這段代碼
確定我的處理器是小端還是大端...
我輸入

0102030405060708 (this is in hex) 

並希望得到080706以及...和01作為答案

而是得到0 and 25 and 50 and -125 and -13 and 501 and -41 and 66
當我編寫相同的代碼時,將“s”作為 2 個字節(短), 0102的 output 是21 (符合小端法)...所以這里出了什么問題?

您將輸入值存儲為double ,它將值存儲為浮點值。 嘗試改用long long ,它是 64 位 integer,並且應該按預期存儲值。

將十六進制數轉換為(double)不太可能達到您的預期; 它是一個浮點值,由以 2 為底的尾數和指數組成。 您可能會發現(long)(long long)更接近您的預期。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM