日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于 大小端

發布時間:2025/7/14 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于 大小端 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡單來說,小端就是看起來不順眼的那個。

0x12345678,存儲時也這么存儲 12 34 56 78,看起來順眼,是大端。

0x12345678,存儲時這樣存儲 78 56 34 12,看起來不順眼,是小端。

切記:小端看起來不順眼。

?

判斷大小端方法:

1.char 指針讀取int數據一個Byte方法:

int IsBigEndian() {int i = 0x12345678;unsigned char *p = (unsigned char*)(&i);if(*p == (char)0x12) return 1;//12 34 56 78這么存儲的,就是大端return 0; }

?2.利用union的性質,union總是從0地址偏移,聯合體union的存放順序是所有成員都從低地址開始存放

?

typedef union _un {char ch;int i; } myunion;int IsLittleEndian() {myunion un;un.i = 1;//對i賦值,如果是小端 01 00 00 00,如果是大端 00 00 00 01if(un.ch == 1) return 1;//小端return 0; }
//注意:最好是先給int賦值,然后判斷char的值,在給int賦值后能夠保證其他3個字節為0
int IsLittleEndian1()
{
  myunion un;
  //un.i = 0;//清零
  un.ch = 1;//對ch賦值,低地址字節一定是01,即:01 XX XX XX 除非初始化為0,那么為 01 00 00 00
  if(un.i == 1) return 1;//小端 按照小端讀出來是1
  return 0;
}

?

?大小端總結完畢,記住一點:小端就是看起來不順眼的那個,這還是公司的某大哥教給我的,我平時總是記不住大小端,從此就記住了。

?

轉載于:https://www.cnblogs.com/wangyuezhuiyi/p/4241700.html

總結

以上是生活随笔為你收集整理的关于 大小端的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。