• 締切済み

コンピュータ系の勉強をスクールに通わず、独学で勉強しています。理解するまで時間がかかってしまいます。お答お願いします。

質問が少し多くなりますが、よろしくお願いします。 (1)問題、2進数の計算をしなさい。引き算は補数を使ってやること。 1110101-100111= (2)問題、4ビットで計算しなさい。引き算は補数を使ってやること。 0011-0110= 1110+1101= 1110+0111= (3)問題、次の16進数は2進数ではどのように表せますか。また、10進数ではどうですか。 (1)20 → (2)4C → (3)100 → (4)7F → (4)問題、球が100個あります。(球の色は全て赤色です。)     この中から一つ取り出して球の色を教えてもらった場合、何ビ    ットの情報量を得たか答えなさい。(教えてもらう方は球の色    が赤色しかないことは知っている。)計算式をたてて答えなさ    い。 (1)番の問題ですが、他の足し算や掛け算の問題は分かったのですが、引き算がどうしても分からないのです。 (2)番の問題ですが、(1)番にも出てきましたが補数の意味が分かりませ ん。 (3)番の問題では、16進数と2進数、16進数と10進数の対応表ですぐ答えはでてくるのですが、計算方法が分からないのです。 (4)番の問題は、最初から球の色は知っているから情報量はゼロにな  ると思うのですが、計算式をたてて答えなさいとあるので・・・ 長くなり本当にすいません。答えだけではなく計算式も書いて頂けたら有難いことです。文章が下手ですいませんが、宜しくお願いします。

みんなの回答

  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.2

(1)(2) 「補数」の概念については、まず10進数で考えた方が理解しやすいでしょう。 10進数二桁の演算をするときに、「-14」の代わりに「100-14」である「86」を使います。 そうすると、例えば、「37-14」は、-14の代わりに86を使うと 「37+86」=「125」となりますが、下二桁を見ると「25」となり、これは「37-14」の結果になってます。 このように、「補数」を使うことで、負数の概念無しに、負数を容易に扱うことが出来るようになるのです。 10進数で10の補数を作るときは、「各桁ごとに9から引いて、最後に1を足す」と求まります。-14の場合、各桁9から引くと「9-1=8」「9-4=5」で「85」、それに1を足すと86。要は「100-14」の計算の代わりに「99-14+1」を行ってるわけですが。 同じように、2進数で2の補数を作るときは「各桁を1から引いて、最後に1を足す」という計算になりますが、2進数一桁で「1から引く」とは、「ビットを反転する」ってことになります。(1から「0」を引くと「1」になり、1から「1」を引くと「0」になる) (1)の1110101-100111=ですが、 2進数7桁で考えると、「-0100111」の2の補数は、「1011001」になります。 (0100111の各桁を反転すると「1011000」で、それに1を足すと「1011001」) ですので、 1110101-100111 は、 1110101+1011001 になります。これを計算すると、11001110 になりますが、 桁溢れした8桁目は無視して、 答えは「1001110」になります。 (2)も計算手順は同様です。 (3)はANo.1の通り。 (4) 情報理論の話ですね。 情報理論では、「情報量」は「-log_2(確率)」で表されます。 ただし、log_2 は、「2を底とする対数」です。(logに下付の2) 対数とは、2を何乗したらその数になるか、という概念で、 例えば、2の4乗は16なので、log2(16)=4 になります。 逆に、1より小さい数字の対数は、逆数の対数の正負を逆にしたものになります。log2(1/16)=-4。 これを元に情報量を計算すると、 たとえば、1/2の確率で起きる事象は、-log2(1/2) = 1 になり、情報量1bitです。 1/4の確率で起きる事象なら、-log2(1/4) = 2 で、情報量2ビット 3/4の確率で起きる事象なら、-log2(3/4) = 0.415ビット となります。 今回の問題では、確率100%で起きる事象ですから、その情報量は、 -log2(1) = 0 で、0bitという式になります。

shinkon
質問者

お礼

みなさん、本当にありがとうございました。 あと数字が苦手、理解力がないためご迷惑をおかけしました。 すごい分かりやすく説明して頂き、私でも理解することが できました。 本当にありがとうございました。

すると、全ての回答が全文表示されます。
  • arain
  • ベストアンサー率27% (292/1049)
回答No.1

>(1)番の問題ですが、他の足し算や掛け算の問題は分かったのですが、引き算がどうしても分からないのです。 1110101-100111= 桁を合わせて  1110101 -)0100111 ----------- として考える >(2)番の問題ですが、(1)番にも出てきましたが補数の意味が分かりません。 マイナス表記の仕方。 2の補数なら、+1なら「0001」、-1なら「1111」とあらわす方法。 ビットを反転させて(補数-1)分を足すことで正負逆の値を得る。 >(3)番の問題では、16進数と2進数、16進数と10進数の対応表ですぐ答えはでてくるのですが、計算方法が分からないのです。 問題は「計算」ではなく進数の「変換」とあるけど? 16進数の10進数への変換は、10進数と同じ考え方。 例えば10進数で「123」とあった場合、 (10*10)*1 + 10*2 + 3 = 100 + 20 + 3 = 123 となる。 同様に16進数で「12C」なら (16*16)*1 + 16*2 + 12 = 256 + 32 +12 = 300 となる。 >(4)番の問題は、最初から球の色は知っているから情報量はゼロになると思うのですが、計算式をたてて答えなさいとあるので・・・ 問題として何かがおかしい気がしますが、原文通りてですか? 「取りだしたかどうか」であれば「玉の有/無」なので1ビットあれば十分。 「全ての玉のうちどれを取りだしたか」であれば、100個分の情報が必要なので100ビット。 ……計算式はどこにも出てこないな。

すると、全ての回答が全文表示されます。

関連するQ&A