- ベストアンサー
メモリについて
メモリアドレスの説明の時に、1byteは8bitと、1つの番地を示す時に 00000000~FFFFFFFFなどの表が使われてますが、 1bitって0,1の2つまでなのに、それぞれの桁にF(0~15)までの値が入れられるのがわかりません。 各桁(1bit)の中も4つに区切られているのですか? 頓珍漢な質問かもしれませんが、よろしくお願いします。
- みんなの回答 (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ビットという意味です。(詳しくは以下のリンクを参照してください。)
その他の回答 (4)
- kamobedanjoh
- ベストアンサー率27% (1021/3686)
2進数で信号を送受するときは,信号がなければ0,有るときは1と判定するだけですから,線路は2本で足ります。8本の信号線を用いると,同時に8ビットの信号が送れます。16ビットは16本線,32ビットは32本線,64ビットは64本の信号線が,処理システムに組み込まれていて,処理スピードを向上させていると解しましょう。 細部ではいろいろ問題もあるでしょうが,取りあえずの理解としてはハズレでもないでしょう。 16進数に関しては,他のご回答を参照して下さい。
お礼
なるほど、各桁の信号線の本数によって変わるということですね。 ちなみに、32bitCPUや64bitCPU等の、数値部分の説明って 理解していいんでしょうか?
- kmee
- ベストアンサー率55% (1857/3366)
> 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桁です。 たぶん打ち間違えていないと思いますが、間違っていても気付かないと思います。 桁を減らしてわかりやすくするために、二進数の代わりに十六進数を使うのはよくあることです。
お礼
各桁を1bitと思ってました。実際は4bitを一桁としてたんですね。
- Misaka_10032
- ベストアンサー率10% (10/93)
とりあえず16進数を勉強しましょう。
- Gotthold
- ベストアンサー率47% (396/832)
それぞれの桁にF(0~15)までの値が入れられるのは、 各桁が4bitだからです。1bitじゃないです。 1111 1111 1111 1111 1111 1111 1111 1111 とか二進数で書くのは長ったらしいので、 16進数で FFFFFFFF と表現していると言うだけの話です。
お礼
各桁は1bitじゃなかったんですね。すっきりしました。
お礼
詳しく教えていただきありがとうございます。