首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

C 語言 0x00006162 是什麼表示法?聯合體與小端序演示

     編輯:程式設計疑難解答

代碼片段:

union T { int i; char c[2]; };
union T a;
a.i = 0x00006162;
putchar(a.c[0]); // 輸出 'b'
putchar(a.c[1]); // 輸出 'a'

核心知識點

  1. 十六進制字面量:0x 前綴表示 hex,每兩位對應一字節
  2. 小端序:Intel x86 將低位字節存低地址,內存實際佈局 62 61 00 00
  3. 聯合體覆蓋:c[0] 訪問最低字節 0x62 ('b'),c[1] 訪問次低字節 0x61 ('a')

補充:八進制字面量

C 語言中 0 開頭表示八進制,例如 0123 = 8310。

調試技巧

printf("%p %p\n", (void*)&a.c[0], (void*)&a.c[1]);
// 輸出地址遞增,確認小端序

理解端序與聯合體,是嵌入式、網絡協議、文件格式解析的基礎功。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved