久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

CPU的大端小端,,了解一下

 Kuai2012 2022-04-26
大端小端這個詞的來源
《程序設(shè)計實踐》第9章中提到,,“大端”和“小端”可以追溯到1726年的JonathanSwift的《格列佛游記》,,其中一篇講到有兩個國家因為吃雞蛋究竟是先打破較大的一端還是先打破較小的一端而爭執(zhí)不休,甚至爆發(fā)了戰(zhàn)爭。1981年10月,,Danny Cohen的文章《論圣戰(zhàn)以及對和平的祈禱》(On holy wars and a plea for peace)將這一對詞語引入了計算機(jī)界,。這么看來,,所謂大端和小端,,也就是big-endian和little-endian,,其實是從描述雞蛋的部位而引申到計算機(jī)地址的描述,
為什么會有大小端
在計算機(jī)系統(tǒng)中,,數(shù)據(jù)的存放是以byte為單位的,,每個內(nèi)存地址存放一個byte的數(shù)據(jù)。但是在C語言中除了1byte的char之外,,還有int,、float、double等數(shù)據(jù)類型,,其占字節(jié)數(shù)大于1byte,,具體大小由編譯器和CPU決定。對于位數(shù)大于8bit的處理器,,例如16位或者32位的處理器,,由于寄存器寬度大于一byte,那么必然存在著一個如何將多個字節(jié)安排的問題,。因此就導(dǎo)致了大端存儲模式和小端存儲模式,。
什么是大端小端
小端模式(Litte-Endian):數(shù)據(jù)中的高位放置在內(nèi)存的高地址,數(shù)據(jù)的低位放置在內(nèi)存的低地址,。
大端模式(Big-Endian): 數(shù)據(jù)中的高位放置在內(nèi)存的低地址,,數(shù)據(jù)的低位放置在內(nèi)存的高地址。
上面的表述比較繞,,下面通過一個例子來說明大端模式和小端模式,比如內(nèi)存中需要存放0x11223344這個數(shù)據(jù),,那么在大端小段下的存放是怎么樣的呢,如下表:
物理地址
小端模式
大端模式
0x80008000
0x44
0x11
0x80008001
0x33
0x22
0x80008002
0x22
0x33
0x80008003
0x11
0x44
如何判別CPU是大端還是小端
通常CPU設(shè)計過程中就設(shè)定好了大小端的模式,,比如PowerPC .IBM為大端模式,,X86、TC27x為小端模式,,ARM即可為大端,,也可以小端模式
那在我們懶得去查手冊的時候,我們可以通過簡單的代碼來確定CPU的工作模式,。
int?main(void){ union{ int num; char ch; } data;
data.num = 1;
if(data.ch == 1){ printf("Little-endian\n"); }else{ printf("Big-endian\n"); } return 0;}
通過利用聯(lián)合體中各成員公用一段內(nèi)存,data.num?=1 是數(shù)據(jù)的低位,,如果 1 被存儲在 data 的低字節(jié),,則data.ch 也為1,則為小端模式,,如果 1 被存儲在 data 的高字節(jié),,這個時候 data.ch 的值就是 0,則為大端模式,。
參考:本文參考網(wǎng)絡(luò)資源,,侵刪

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多