31

32ビットOSを想定しています。

  1. コンピュータの1つのメモリ位置には、どのくらいのデータが格納されていますか?

  2. コンピュータのメモリストレージの基本単位は何ですか?

  3. たとえば、整数を格納するには、必要なメモリアドレスは何ですか?基本単位がBYTEの場合、整数には4バイトが必要です。したがって、バイトを格納する必要がある場合、メモリ位置0001に最初のバイトを入れ始めると、整数は0003メモリ位置で終了しますか?

間違っていたら訂正してください。

4

3 に答える 3

34

最も一般的には、最新のシステムは「バイトアクセス可能」と呼ばれるものです。これの意味は:

  1. 1つのメモリ位置に1バイト(8ビット)が格納されます。
  2. メモリの基本的なストレージユニットは1バイトです。
  3. 4バイトを格納し、最初のバイトを0001に配置する必要がある場合、最後のバイトは0004になります。これは、0001、0002、0003、および0004のそれぞれに1バイトです。

システムにはさまざまなCPUワードサイズがありますが(32ビットシステムには32ビットまたは4バイトワードがあります)、メモリは通常バイト単位でアドレス指定されることに注意してください。算術演算で使用されるCPUのレジスタは4バイトですが、データストレージに使用する「メモリ」プログラマはバイト単位でアドレス指定されます。

x86システムでは、多くのメモリアクセス命令では、メモリ内の値をワードサイズで均等に割り切れるアドレスに「整列」させる必要があります。例:0x ??? 0、0x ??? 4、0x ??? 8、0x???C。したがって、intを0001に格納することは、ほとんどのシステムでは発生しません。非数値データ型は通常、任意のアドレスで見つけることができます。

ウィキペディアを参照してください:アライメント ワード(コンピューティング) メモリアドレス

于 2011-03-07T03:40:50.037 に答える
2

コンピュータの1つのメモリ位置には、どのくらいのデータが格納されていますか?

パソコンによって異なります。メモリ位置とは、CPUが直接アドレス指定できるメモリの一部を意味します。

コンピュータのメモリストレージの基本単位は何ですか?

これはビット、次にバイトですが、CPUが異なれば、特定のサイズのワードでメモリをアドレス指定する方が快適です。

たとえば、整数を格納するには、必要なメモリアドレスは何ですか?基本単位がBYTEの場合、整数には4バイトが必要です。

数学では、整数は無限大であるため、それらのすべて/いずれかを表すには無限のメモリが必要です。整数を表すために使用するメモリの量について、コンピュータアーキテクチャが選択するのは任意です。結局、整数がどのように表現され操作されるかについての論理は、たとえそれがファームウェアに埋め込まれていても、ソフトウェアにあります。プログラミング言語Pythonには、整数の無制限の表現があります(ただし、グーゴルを試さないでください)。

結局、すべてのコンピュータアーキテクチャでは、バイトレベルまたはビットレベルまでのアドレス指定が可能ですが、一般にCPUレジスタのビットサイズと一致するワードサイズのアドレスで最適に動作します。

データの量や整数のサイズではなく、コンピュータが使用できるメモリアドレスの数です。

32ビットには4GiBアドレス(バイト用)があります。4GiBを超えるRAMを搭載したマシンのクラスターを管理するには、各システムでより大きなアドレスを管理する必要があります。

繰り返しますが、それはすべてアドレス可能なメモリ空間に関するものであり、整数のサイズに関するものではありません。CPUが8ビットワードアドレッシングを優先する場合でも、64ビット整数がありました。

于 2011-03-07T04:08:26.210 に答える
0
  1. アーキテクチャによって異なります。32ビットの場合は32ビット。64ビットの場合は64ビット。
  2. 通常、それは「単語」と呼ばれます
  3. ほとんどの値は整列する必要があるため、アドレスは048またはCで終わります
于 2011-03-07T03:27:51.427 に答える