• ベストアンサー

メモリについて

メモリアドレスの説明の時に、1byteは8bitと、1つの番地を示す時に 00000000~FFFFFFFFなどの表が使われてますが、 1bitって0,1の2つまでなのに、それぞれの桁にF(0~15)までの値が入れられるのがわかりません。 各桁(1bit)の中も4つに区切られているのですか? 頓珍漢な質問かもしれませんが、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • SPROCKETER
  • ベストアンサー率26% (2125/7984)
回答No.5

 1ビットは確かに0と1しか表現出来ません。電荷がプラスならば1、マイナスならば0と覚えて置いてください。  これを4ビット並べて考えてみます。以下のようなものです。  0000   (0)  1を加算すると、  0001   (1)  再度、1を加算すると、  0010   (2)  さらに1を加算すると、  0011   (3)  という具合に数字が増えて行きます。  4ビットの数字は、たとえば、8、9、10、11・・・は以下のようになります。  1000  (8)  1001  (9)  1010  (10)【A】  1011  (11)【B】    ・    ・    ・  このように、4ビットを使って、最大で0~15まで数字を表現出来ます。16進数に直すと0~Fとなります。16進数では10~15の数をアルファベットを使ってA,B,C,D,E,Fと表現します。  8ビットでは4ビットを1単位として、2単位並べて表現します。たとえば以下のようにです。  07H   (7)  1BH   (27)  88H   (136)  98H   (152)  3CH   (60)  8ビットでは16×16で256ありますから、0~255まで数字を表現出来ます。1バイトと呼んでいるのは、8ビット単位のデータを意味しています。  データをバイト単位で現すように、アドレスもバイト単位で表します。よって、2バイト(16ビット)使ってアドレスを表現すれば、以下のようになります。  0000H~FFFFH(0~65535)【64KB】  4バイト(32ビット)で表現すれば、以下のようになります。  00000000H~FFFFFFFFH(0~4294967296)【4GB】  データもアドレスもコンピュータ内では2進数のビットで計算しています。人間は2進数の計算が覚えにくいので、16進数に変換して表現しているだけです。それ以外は特に意味がありません。  CPUが32ビットや64ビットと呼んでいるのは、レジスタの長さが32ビットか、64ビットという意味です。(詳しくは以下のリンクを参照してください。)

参考URL:
http://ja.wikipedia.org/wiki/%E5%8D%81%E5%85%AD%E9%80%B2%E6%B3%95
mechwarrior42
質問者

お礼

詳しく教えていただきありがとうございます。

その他の回答 (4)

回答No.4

2進数で信号を送受するときは,信号がなければ0,有るときは1と判定するだけですから,線路は2本で足ります。8本の信号線を用いると,同時に8ビットの信号が送れます。16ビットは16本線,32ビットは32本線,64ビットは64本の信号線が,処理システムに組み込まれていて,処理スピードを向上させていると解しましょう。 細部ではいろいろ問題もあるでしょうが,取りあえずの理解としてはハズレでもないでしょう。 16進数に関しては,他のご回答を参照して下さい。

mechwarrior42
質問者

お礼

なるほど、各桁の信号線の本数によって変わるということですね。 ちなみに、32bitCPUや64bitCPU等の、数値部分の説明って 理解していいんでしょうか?

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.3

> 00000000~FFFFFFFFなどの表 これは十六進数と言って、0~9A~Fの16文字を使って0~15の数値を表して、各文字が16の整数乗の桁を表しています。 これは、十進数が、0~9の10文字を使って0~9の数値を表し、各文字が10の整数乗の桁を表すのと同じです。 十六進数であることを示すために、 0000H,0000(16),0x0000,などと表記したりします。 二進数は4桁で0~15を表します。二進数を4桁ずつ区切ってそれぞれを0~15(0~F)にすれば十六進数になります。 FFFFFFFF(十六進)は11111111111111111111111111111111(二進)です。 十六進8桁なので、二進数にすると8×4=32桁です。 たぶん打ち間違えていないと思いますが、間違っていても気付かないと思います。 桁を減らしてわかりやすくするために、二進数の代わりに十六進数を使うのはよくあることです。

mechwarrior42
質問者

お礼

各桁を1bitと思ってました。実際は4bitを一桁としてたんですね。

回答No.2

とりあえず16進数を勉強しましょう。

  • Gotthold
  • ベストアンサー率47% (396/832)
回答No.1

それぞれの桁にF(0~15)までの値が入れられるのは、 各桁が4bitだからです。1bitじゃないです。 1111 1111 1111 1111 1111 1111 1111 1111 とか二進数で書くのは長ったらしいので、 16進数で FFFFFFFF と表現していると言うだけの話です。

mechwarrior42
質問者

お礼

各桁は1bitじゃなかったんですね。すっきりしました。

関連するQ&A

専門家に質問してみよう