検索

ホームページ  >  に質問  >  本文

c++ - 对一块连续内存取地址,大小端会对其造成影响么?

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

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

高洛峰高洛峰2767日前819

全員に返信(4)返信します

  • 迷茫

    迷茫2017-04-17 15:37:36

    1. ビッグエンディアンモードでもリトルエンディアンモードでも出力アドレスは同じです。

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

    返事
    0
  • PHP中文网

    PHP中文网2017-04-17 15:37:36

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

    返事
    0
  • 黄舟

    黄舟2017-04-17 15:37:36

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

    返事
    0
  • 大家讲道理

    大家讲道理2017-04-17 15:37:36

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

    返事
    0
  • キャンセル返事