c++ - 对一块连续内存取地址,大小端会对其造成影响么?
高洛峰
高洛峰 2017-04-17 15:35:36
0
4
813

也就是对于同一块连续的内存,在小端模式下输出其地址,和,在大端模式下输出其地址,这两个地址一样么?如果一样,那都是低地址么?还是.....

-------------------------------补充------------------------
数据地址的存储方向因为大小端会有不同,这我知道,我想知道的是,是否会因为大小端,造成在取一段连续内存的地址时,输出不同呢?比如说,一个输出了该段内存的低地址,另一个输出了高地址?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全員に返信(4)
迷茫
  1. ビッグエンディアンモードでもリトルエンディアンモードでも出力アドレスは同じです。

  2. すべての下位アドレスが返されます。

いいねを押す +0
洪涛

両方とも低いアドレスです
ビッグエンディアンとスモールエンディアンは解析順序にのみ影響し、アドレスには影響しません

いいねを押す +0
黄舟

例として、0x12345678 を 0x10000000 に保存する場合、
リトル エンディアン モード:
0x78 存在 0x10000000
0x56 存在 0x10000001
0x34 存在 0x10000002
0x12 が存在します 0 x10000003
ビッグ エンディアン モード:
0x12 は 0x10000000 として存在します
0x34 は 0x10000001 として存在します
0x56 は 0x10000002 として存在します
0x78 は 0x10000003 として存在します

いいねを押す +0
大家讲道理

これは x86 マシン、リトルエンディアンですが、理解できるかどうかわかりません。少し説明すると、aのアドレスは0x4007cdで、1バイトはcd 07 40 00として順番に出力され、2バイトは07cd 0040として出力され、4バイトは004007cdとして出力されます。大端と小端は正しいです。上位からは問題ありません。たとえば、mov al, ah やその他の問題では、ビッグ エンディアンとスモール エンディアンの問題を考慮する必要があります。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート