- ベストアンサー
32bit = 4GB(バイト)?
32bit = 4GB(バイト) という表現をよく見るのですが 32bit = 10bit(1Kbit) X 10bit(1Kbit) X 10bit(1Kbit) X 4bit = 1Gbit X 4bit = 4Gbit(ビット)ではないでしょうか? なぜ4GB(バイト)になるか分かりません。教えてください
- みんなの回答 (9)
- 専門家の回答
質問者が選んだベストアンサー
アドレッシングってご存知ですか? 32bitの変数で表現できる数字は10進数で0~4,294,967,295です。 この数字を住所の番地だと思ってください。 1番地に1バイトを格納できるとすれば、4,294,967,296バイト(=4GB)の集合の中の 任意の1バイトを指定することが出来ます。(1アドレス1バイトの系の場合) つまり「アドレスのビット幅が32bitあれば、4GBを扱うことができる」と言う事を示しています。
その他の回答 (8)
- Tacosan
- ベストアンサー率23% (3656/15482)
今どき普通の CPU では 1Byte 単位でアドレスを与えていて, そのアドレスを 32bit で指定するから 4GByte, といっているんだろうなぁ. もちろん既に紹介された URL にあるように, 「32bit だから 4GB までしか使えない」なんてことは全然ありません. 努力と根性があれば 4GB を越えるメモリを使うことも可能です. 実際, いくつかのデータベースで 4GB を越えるメモリを使えるようにしているものがあるはずです. もちろん, そのためには CPU が 4GB を越える物理メモリにアクセスできるようになっていないと泣きそうなことになります. 例えば Intel の歴史でいうと, CPU 自体が 32bit になったのは 386 のときで, このときは CPU から出るアドレス線が 30本しかないので物理メモリは 4GB でした (4Byte 単位でアクセスするので 2本省略されています). これが PentiumPro になるとアドレス線が 33本になって (8Byte 単位でアクセスするため 3本省略することができて) 64GB まで物理メモリとして持てるようになります... まあ, PentiumPro の時代で 4GB なんていうのははるかかなたですけどね. 去年末くらいまで PentiumIII で 6GB メモリってやってましたので, 絶対可能です (Linux を使っていたので 1プロセスで 2GB までしかユーザは使えないのだが, 6GB の物理メモリを無理矢理使いきったことはある).
お礼
> 今どき普通の CPU では 1Byte 単位でアドレスを与えていて, そのアドレスを 32bit で指定するから 4GByte, といっているんだろうなぁ. 私が見たのも、たぶんそういう事だったんだろうと思います。
- gungnir7
- ベストアンサー率43% (1124/2579)
少々奇々怪々な文面があちこちでとんでいるようですが^^; まず、第一に32bitを等号で結んで最終的に4Gbitにしておられますが、 32bit=4Gbitはさすがにおかしいですが、 さりとて何を言いたいのかもさっぱり見当がつきません。 もし、以下の回答で納得がいかなければ補足してもらえますか。 32bitは情報量の単位でして実際の扱える範囲は2のべき乗で与えられます。 32bitですから2^32。これを計算すると4Gバイトになります。 なお、バイトの単位ですが、2^10を1Kバイトとすると 2^20で1M、2^30で1Gバイトになります。 1000バイトを1K、1000000を1Mと10進数を基本にして計算する場合もあり、 こちらのスタイルだと約4Gとなります。
お礼
> さりとて何を言いたいのかもさっぱり見当がつきません。 申し訳ありませんでした。 > 32bitですから2^32。これを計算すると4Gバイトになります。 ここには、アドレッシングという概念が暗黙に考慮されているという事だったんですね
- Pesuko
- ベストアンサー率30% (2017/6702)
>32bit = 4GB(バイト) という表現をよく見るのですが これって既存32bitOSが管理できる最大メモリー領域のことではないの? といっても最初の設計が4GBだったからであって、設計さえ しなおせば、もっと広大な空間が管理できるんだけど。 大抵設計段階ではメモリーの価格が高くて、当時4GBも購入する人は皆無だろうからこれ以上使うことは無いと 踏んで設計しちゃうからなのだ。 http://mag.autumn.org/Content.modf?id=20050119154552
お礼
> これって既存32bitOSが管理できる最大メモリー領域のことではないの? そんな高度な質問ではありませんでした。 アドレッシングという概念を分かっていませんでした。
- sittaka-kun
- ベストアンサー率22% (153/686)
歴史的に、一つのアドレスで指定するデータのバス幅は8bit(1バイト)であると暗黙に仮定されているからです。 たとえば、最近の64bit CPUは64bit(8バイト)のデータバス幅を持ちますので、一つのアドレスで8バイトのデータにアクセスできますが、アドレス線の最下位ビットは「A3」と名づけられており、「A0」~「A2」の3本の信号線は存在しません。この場合、33本のアドレス信号線しかないにもかかわらず、物理アドレス空間は36bit x 8bit = 64Gバイトとなります。
お礼
> 歴史的に、一つのアドレスで指定するデータのバス幅は8bit(1バイト)であると暗黙に仮定されているからです。 そうだったんですね。勉強になりました・
こんな話と勘違いしてるのでは http://mag.autumn.org/Content.modf?id=20050119154552
お礼
アドレッシングという概念を理解していなかったので、仰るような高度な勘違いではなかったのですが、、、質問がとんちんかんですみませんでした。
- rabbit_cat
- ベストアンサー率40% (829/2062)
32bitマシンのメモリアドレスのことかな。 普通、メモリアドレスの1つの番地は1バイトを表しますから、 ポインタが32bitあれば、 2^32 = 4294967296 で4GByteのメモリを管理できます。
お礼
すみません、私の質問している内容が意味不明でしたが、 >普通、メモリアドレスの1つの番地は1バイトを表しますから、 この、アドレッシングという概念で解決しました。ありがとうございました。
- Interest
- ベストアンサー率31% (207/659)
> 32bit = 4GB(バイト) という表現をよく見るのですが いえ、見たことがありません。 bit というのは 0か1しか情報を持たない単位です。 8bitをまとめて 1Byteといいます。 1024Byte = 1KB (Killo Byte)です。 1024KB = 1MB (Mega Byte) 1024MB = 1GB (Giga Byte) 1024GB = 1TB (Tera Byte) です。1024 = 2の10乗です。 32bit = 4 * 8 bit = 4 Byte ならわかります。
お礼
> 32bit = 4 * 8 bit = 4 Byte > ならわかります。 確かにそのとおりですね。すみません、私も質問している内容が意味不明でした。。 ですが、本来質問したかった問題もアドレッシングという概念で解決しました。ありがとうございました。
- char2nd
- ベストアンサー率34% (2685/7757)
1B=8bit です。32bitなら4Bにしかなりませんが、32Gbitでは? 32Gbitなら4GBです。 http://e-words.jp/w/E38390E382A4E38388.html
お礼
仰るとおり、私の質問している内容が意味不明でした。。 ですが、本来質問したかった問題もアドレッシングという概念で解決しました。すみませんでした。
お礼
アドレッシング、知りませんでした。 すみません、私も質問している内容が意味不明でした。。 ですが、本来質問したかった問題もアドレッシングという概念で解決しました。ありがとうございました。