大端模式: 是指資料的高位元組儲存在記憶體的低位址中,而資料的低位元組儲存在記憶體的高位址中,這樣的儲存模式有點兒類似於把資料當作字串順序處理:位址由小向大增加,而資料從高位往低位放;這和我們的閱讀習慣一致。
小端模式:是指資料的高位元組儲存在記憶體的高位址中,而資料的低位元組儲存在記憶體的低位址中,這種儲存模式將位址的高低和資料位權有效地結合起來,高位址部分權值高,低位址部分權值低。
為什麼會有大小端模式之分呢?
這是因為在計算機系統中,我們是以位元組為單位的,每個位址單元都對應著乙個位元組,乙個位元組為 8bit。但是在c語言中除了8bit的char之外,還有16bit的short型,32bit的long型(要看具體的編譯器),另外,對於位數大於 8位的處理器,例如16位或者32位的處理器,由於暫存器寬度大於乙個位元組,那麼必然存在著乙個如何將多個位元組安排的問題。因此就導致了大端儲存模式和小端儲存模式。
例如乙個16bit的short型x,在記憶體中的位址為0x0010,x的值為0x1122,那麼0x11為高位元組,0x22為低位元組。對於 大端模式,就將0x11放在低位址中,即0x0010中,0x22放在高位址中,即0x0011中。小端模式,剛好相反。我們常用的x86結構是小端模式,而keil c51則為大端模式。很多的arm,dsp都為小端模式。有些arm處理器還可以隨時在程式中(在arm cortex 系列使用rev、rev16、revsh指令 )進行大小端的切換。資料格式:16位的無符號整數
接收端使用unsigned short接收16位的無符號整型資料。
任務:將高8位與低8位的資料對調位置
使用此函式需要宣告#pragma comment(lib,"ws2_32.lib")
否者會報錯:
除錯結果:
獲取低8位和高8位的資料,原低位8位數*256+高8位在進行計算。
將乙個int型的高低位反轉
乙個int型資料一般占用4位元組,即32位。實現乙個int型的高低位反轉就是按乙個位元組一次取出其值暫時儲存到乙個unsigned char陣列中,然後按照相反的方向將資料的值寫回int型資料中。c 實現如下 include include intmain char p char data prin...
乙個將32位數字高低位互換的小程式
在 c和指標 這本書上看到有一道題要求將乙個32位資料高低位互換,提示用reverse.c做。網上大概看了一下沒有找到比較合適的答案,嘗試自己動手寫了一下。利用遞迴,將餘數左移,返回結果。include unsigned int reverse unsigned int value int main...
SpringMVC將資料放到作用域中的方式
一 將資料放到request域中 方式一 request.setattribute message 我愛你們 在jsp頁面中通過el表示式獲取 輸出 我愛你們 方式二 modelandview modelandview new modelandview modelandview.setview us...