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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

高地址和低地址、高字节低字节、大小端模式的转换,存储顺序

發(fā)布時(shí)間:2023/12/20 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 高地址和低地址、高字节低字节、大小端模式的转换,存储顺序 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

參考博客

https://blog.csdn.net/ce123_zhouwei/article/details/6971544

https://my.oschina.net/alphajay/blog/5478

一、高地址和低地址

?

二、高字節(jié)低字節(jié)

如int a=16777220,化為十六進(jìn)制是0x01?00 00 04則04屬于低字節(jié),01屬于高字節(jié)

?

三、大小端模式

(1)如果a在內(nèi)存中的存放順序?yàn)橄聢D(即低字節(jié)存放在高地址),則為大端模式

(2)如果a在內(nèi)存中的存放順序?yàn)橄聢D(即低字節(jié)存放在低地址),則為小端模式

(3)如何互換(通過移位操作再或)

四、存放順序

1、原則

(1)一個(gè)整數(shù)類型內(nèi)部

低地址存儲(chǔ)低位,高地址存儲(chǔ)高位。比如int a=1,則存儲(chǔ)情況為0000(高地址) 0000 0000 0001(低地址)

(2)若干個(gè)局部變量(在棧中存儲(chǔ)的)

先定義的高地址,后定義的低地址

(3)類、結(jié)構(gòu)體或數(shù)組的元素

先定義的低地址,后定義的高地址

?

五、測(cè)試說明

(1)整數(shù)類型內(nèi)部:低地址存儲(chǔ)低位,高地址存儲(chǔ)高位。

#include<iostream> using namespace std;union U {char str[2];short int num; };int main() {U u;u.str[0] = 10;//存放在低地址,0000 1010u.str[1] = 1;//存放在高地址, 0000 0001cout << u.num << endl;//組合的時(shí)候,整數(shù)類型內(nèi)部低地址存儲(chǔ)低位,高地址存儲(chǔ)高位,因此是0000 0001 0000 1010 = 266system("PAUSE");return 0; }

(2)若干個(gè)局部變量(在棧中存儲(chǔ)的):先定義的高地址,后定義的低地址。

類、結(jié)構(gòu)體、數(shù)組中的元素:先定義的低地址,后定義的高地址

class Test { public:int m;int n; }; int main() {int a;char b;int c[10];Test t;cout << (size_t)&a << endl;//結(jié)果1cout << (size_t)&b << endl;//結(jié)果2cout << (size_t)&c << endl;//結(jié)果3cout << (size_t)&t << endl;//結(jié)果4cout << (size_t)&t.m << endl;//結(jié)果5cout << (size_t)&t.n << endl;//結(jié)果6system("PAUSE");return 0; }

結(jié)果1>結(jié)果2>結(jié)果3>結(jié)果4=結(jié)果5<結(jié)果6

分析:

結(jié)果1>結(jié)果2>結(jié)果3>結(jié)果4,是因?yàn)閍、b、c、t都是局部變量,在棧上存儲(chǔ),棧是從高地址到低地址,因此地址逐漸減小。

結(jié)果5<結(jié)果6,是因?yàn)榻Y(jié)構(gòu)體內(nèi)部,先定義的地址小,后定義的地址大,這與類內(nèi)的成員,數(shù)組總的元素,都是類似的。? ????

分析它們的數(shù)值差,可以發(fā)現(xiàn)字節(jié)對(duì)齊問題,數(shù)組名占用4字節(jié)等問題。

總的來說,具體的地址,需要考慮“棧的高地址到低地址”、“字節(jié)對(duì)齊”、“數(shù)組”這樣的特殊情況等等。

?

總結(jié)

以上是生活随笔為你收集整理的高地址和低地址、高字节低字节、大小端模式的转换,存储顺序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。