大端小端的判定與運用

2021-07-08 16:17:21 字數 1568 閱讀 3924

大端模式(big_endian)

小端模式(little_endian):

判定:

union a

;void test()

else

}

運用:

分析:

1.> int ptr2=(int )((int)a+1);

將a強制型別轉換為int,假設a的位址也就是陣列首元素的位址為0018ff44,則(int)a+1==0018ff45,在將其強制型別轉換為指標,此時ptr2==0018ff45;

由上圖可知,該位址的大小是從低—>高排列, 而我的編譯器是以小端形式儲存,故低位在放低位址,(在32位作業系統中,32位和64位系統中,編譯器為了相互相容,所以指標都是4個位元組長度。)故而*ptr2為02 00 00 00;

2.>對於陣列名存在兩個方式不會發生降級的情況,乙個是sizeof(陣列名),此處指該陣列的整個大小,另乙個就是此處的&a,此時指數組的整個位址,和陣列首元素的位址相同,如

既陣列首元素的首位址和整個陣列的首位址是相同的,但是當分別對arr和&arr+1之後,你會發現它們的位址就會不在相同,因為arr指數組的首元素,而&arr卻指的是整個陣列

大端與小端

網際網路使用網路位元組順序採用大端模式進行編址,大端儲存也稱為網路位元組序,因為tcp ip包在網路中傳輸時都要求以這種次序,以其他形式儲存資料的機器 主機位元組順序根據處理器的不同而不同,如powerpc處理器,使用大端模式,而pentuim處理器使用小端模式 則必須在傳送資料之前把首部轉換成網路...

大端與小端

端模式 endian 的這個詞出自 jonathan swift 書寫的 格列佛遊記 這本書根據將雞蛋敲開的方法不同將所有的人分為兩類,從圓頭開始將雞蛋敲開的人被歸為 big endian 從尖頭開始將雞蛋敲開的人被歸為 littile endian 小人國的內戰就源於吃雞蛋時是究竟從大頭 big ...

大端與小端

大端表示跟小端表示這兩者的具體意義我老是記不住,當然不是說它的意思不懂,而只是容易搞混。現在記一下,以後就比較有印象了。在c 中,定義乙個int值的時候,它所占用的記憶體是4個位元組,然而這4個位元組裡面,我們如果得到這個int值的記憶體位址,其實就是它的最低位置的位址,如 int a 假設 a的記...