dポイントプレゼントキャンペーン実施中!

独学でプログラミングの勉強をスタートしましたが、ビット数の概念を理解するにあたり、進法(例:2進法、16進法など)が使われており、早くもそこで躓いてしまいました。

テキストの質問:
6ケタの8進法を使用するコンピューターの場合、

1)何ビットとなるか?
2)8進法で、このコンピューターに内臓できる最大の整数は?
3)10進法と関連する数字はあるか?
4)最大の負の整数は、8進法と10進法では何になるか?

8進法について分かりやすく説明して頂けますでしょうか?
宜しくお願い致します。

A 回答 (5件)

まずは、計算機の数値表現(二進数)をしっかりマスターしてください。

8進法、16進法は、単にそれが表記しやすいから使っているだけですので、基本は2進法です。

http://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%B3% …

計算機で2進法を使うのが便利な理由は、電気回路などの状態を表しやすい、例えば、電気がON/OFF、光ってる/光ってない、穴が開いてる/開いてない(昔のパンチカードなどですね)などが表しやすいからです。この状態一つを記憶する容量をビット(即ち2進法一桁分)といいます。

なので、全部2進法で表記できるのですが、桁が長くなりすぎるので、これをまとめて8進法、16進法で表記しているだけです。(2進法4桁分が16進法一桁、2進法3桁分を8進法一桁)
最近では8進法はあまり見かけませんが。

この理屈さえ分かっていれば、基本は2進法を習得するだけで十分です。

1) 2進法3桁(即ち3ビット) × 6 = 2進法18桁 (18ビット)
2) 2進法 111 111 111 111 111 111
(8進法と関連付ける時は3桁ずつ区切ると分かりやすい)
   8進法 7   7   7   7   7   7
   10進法 8^5 * 7 + 8^4 * 7 (…省略…) 8^1 * 7 + 8^0 * 7
         =262143


2^17 + 2^16 + (省略) + 2
3) 0,1,2,3,4,5,6,7 は10進法と同じ (8,9は8進法では使われない)
4) 2進法では、100 000 000 000 000 000 
8進法では、   4   0   0   0   0   0
10進法では、 8^5 * 4 * (-1) = -131072

ご参考に。
    • good
    • 0
この回答へのお礼

2進法が基本となるのですね。
確かに2進法がわかれば、8進法も10進法も計算できました。
わかりやすいご説明がありがとうございました。

お礼日時:2012/05/12 09:35

(4) 負の表現方法が示されていないので回答不能です。


負の値を表現する方法は何通りもあって、それぞれで表現できる値の範囲が変わります。
http://ja.wikipedia.org/wiki/%E7%AC%A6%E5%8F%B7% …
    • good
    • 0
この回答へのお礼

ようやく2進法が理解できたところなので、負の値までは、、、参考とさせて頂きます。ご指摘ありがとうございました。

お礼日時:2012/05/12 09:39

1)何ビットとなるか?


8進法の一桁は8=2^3で2進法の3桁(3ビット)で表わすことができるから
8進法6桁は 3(ビット/桁)×6(桁)=18(ビット)
となります。

2)8進法で、このコンピューターに内臓できる最大の整数は?
符号無し整数であれば
最大整数は
777777(8進)=1000000(8進)-1=8^6 -1=(2^3)^6 -1=2^18 -1=262143

符号付き整数であれば
符号に1ビットとられるから
最大整数は
377777(8進)=400000(8進)-1=4*8^5 -1=2^(2+3*5) -1=2^17 -1=131071

3)10進法と関連する数字はあるか?
慣れれば10進法と同じ加減乗除算が出来るでしょう。

4)最大の負の整数は、8進法と10進法では何になるか?
2の補数法であれば
最大の負の整数は -1(10進)=777777(8進)

絶対値が最大の負の整数は 
400000(8進)=-2^17=-131072(10進)
    • good
    • 0

2)は回答間違い。


符号ビットなしならば、
777777(OCT)ですね。
    • good
    • 0

1)8進数1桁は、2進数3桁に相当するので、2進数18桁と同じ。



2)符号ビットを使わない整数なら、8^6-1=2^18-1

3)問題の意図がわからないが、10進数と8進数で表記が対応する(同じ)のは0~7

4)8進数で400000
2進数の基本がわからないと苦しいでしょう。
特に4)は、2の補数による負の数の理解が必須です。

2進数の基本がわかれば、16進数だろうが8進数だろうが、楽勝ですね。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!