[英]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.