簡體   English   中英

不同數據類型的二進制格式

[英]The binary format for different data types

unsigned long long類型的確切二進制格式是什么(至少在visual studio中)。

我正在使用別名指針進行一些按位操作,我通過對unsigned char指針的操作設置該位,然后對unsigned long long指針(別名)執行一些其他操作。

unsigned long long的格式看起來很奇怪,因此,它會使結果陷入混亂,似乎位移操作也表現得很奇怪:

從位掩碼測試來看,這個數據似乎是從right: LSB->MSB : left排列的right: LSB->MSB : left ,這意味着>> shift會將數據帶到更高位而不是更小的位,這是正確的嗎?

編譯器是ICC 13.0,操作系統是Windows 7-64。

您描述的字節布局是小端,這是英特爾處理器一般使用的布局。 位移不依賴於數字的內存布局,而是取決於值,因此字節順序不應影響操作的值。 但是,如果您正在使用指針別名,例如轉換為char *並使用指針算法來提取它的片段,您將獲得依賴於字節順序的行為,這些行為在小端英特爾處理器上可能不是您所期望的。

暫無
暫無

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

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