• ベストアンサー

2進数の数え方

基本情報処理技術者の参考書で 11100100が-28となっていました。 先頭の符号ビットは理解できるのですが、 1×128(2の7乗)1×64(2の6乗)+1×32(2の5乗)+1×4(2の2乗)で-228になる気がするのですが、どう間違っているのでしょうか? 教えてください。よろしくお願いします。

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

  • ベストアンサー
noname#156136
noname#156136
回答No.1

負数は2の補数で表現されるので、 11100100 をビット反転しして、 00011011 としたものに、 00000001 を加えた結果である 00011100 = 16 + 8 + 4 = 28 が、もとの負数の絶対値です。

richiebb
質問者

お礼

ありがとうございますm(_ _)mわかりましたm(_ _)m

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

関連するQ&A

  • ビット数と表現できる数の範囲の関係

    基本情報技術者の勉強を独学でしています。 nビットを用いると、符号なし整数なら0~2^n-1の範囲、符号付整数なら2^(n-1)~2^(n-1)-1の範囲の値を表す事ができると参考書にありました。 ここで気になったのですが、もしn=2の場合、符号付き整数は-2~1の範囲にある4(2^2)個が表現できる事になりますよね? 00が0、01が1、11が-1までは納得がいくのですが 10を-2として扱って良いのかわからなくなってしまいました。 これはどのように考えれば良いのでしょうか?

  • 2進数について

    16進数のEOOOと1000を16ビットの符号付きと符号なしの2進数で計算するとき E000を符号なしでの2進数にすると(1110 0000 0000 0000)になり 符号付きにすると(0010 0000 0000 0000)になります。 これを10進数に直すと先頭の00を考えないとき-8192になり 00を考えた場合8192になるのでこれはどっちがあっているのか と思って質問しまた。 また1000を2進数にすると 符号なしでは(0001 0000 0000 0000)になり 符号付きでは(1111 0000 0000 0000)になるというやり方でいいのですか? それとも000は考えないで(1 0000 0000 0000)で計算したほうがいいのでしょうか? わかるかた教えてください お願いします。

  • 基本情報技術者試験の過去問の解説お願いします。

    基本情報技術者試験の過去問がどうしても理解できません。 2種類の文字”A”、”B”を1個以上、最大nビット並べた符号を作る。60通りの符号を作るときのnの最小値は幾らか。 ア4 イ5 ウ6 エ7 という問題なのですが、 自分は60通りということでウを選んだのですが答えはイでした。 イでは2の5乗で32だと思うんですが、どうしてイになるのでしょう。 どなたかわかる方いらっしゃいましたら説明お願いします。

  • シフト演算について

    基本情報技術者試験の資格試験のための勉強をしているものです。 現在、カテゴリー的には基礎理論の離散数学、 シフト演算のうち、「論理シフト」ではなく、 「算術シフト」で理解できない点があります。 左シフトは理解できたつもりなんですが・・・ 右シフトがいまいちよくわかりません。 以下に例題を表記します。 【10001100を2ビット左シフト】 先頭ビットは符号ビットということで、マイナスの数値になるのだと思います。すると、 【元の数】 10001100 =-(0001100) =-(8+4) =-12 【2桁左シフト結果=元の数×2^2】 10110000 =-(0110000) =-(32+16) =-48 となり、 元の数=-12 結果 =-48 で、結果が元の数×2^2で結果が合っているようです。 (と思っているだけなんですが) 元の数の考え方自体に間違いがありそうですが・・・ とりあえず進みます。 同様に 【10001100を2ビット右シフト】すると 【2桁右シフト結果=元の数×2^-2(=元の数×1/4)】 11100011 =-(1100011) =-(64+32+8+4) =-99 となり、 元の数=-12 結果 =-99 で、結果が元の数×2^-2(=元の数×1/4)と結果が合いません。 先頭符号を空いたビットに移動した部分は数えないのでしょうか。 すると、 元の値 =-12 結果  =-3 で結果が合う気がします。 過去の回答や検索サイトなどで調べてみましたがピンときません。 テキストにも、10進数での数値表記はなく、 答え合わせができなくて困っております。 どなたかお答えいただけると助かります。 どこが間違っているのか混乱しております。 先頭ビットが正負の符号ビットという前提の例題なのですが、 マイナス符号がついている前提となるので 先頭ビットや空いたビットに入れた符号ビットも含めて 「2の補数」で考える必要があるのかどうかも よくわからなくなってきました。 つまり、元の数値「10001100」は「-12」ではなく -(01110100) =-(64+32+16+4) =-116 なのでしょうか なお、C言語は今のところ学習していないので、 C言語にまつわるご回答ですともっとわからなくなりそうです。 単純に間違いを指摘していただけると大変助かります。 よろしくお願いします。

  • [応用情報]BCDの最大値について

    以下の問題を解いています。 ------------------------------------------------------------------------------------------- 第16問 4nビットを用いて整数を表現するとき,符号なし固定小数点表示法で表現できる最大値をaとし,BCD(2進化10進符号)で表現できる最大値をbとする。nが大きくなるとa/bはどれに近づくか。 --------------------------------------------------------------------------------------------- この解説で、BCDで表現できる最大値は、以下とあるのですが、なぜ9なのか?なぜ102なのかがわかりません。符号付だと4の1乗ビット=15ということは理解しています。 どなたか解説いただけませんでしょうか。 4の1乗ビット=9 4の2乗ビット=99≒10の2乗 4の3乗ビット=999≒10の3乗 4の4乗ビット=9999≒10の4乗 4のn乗ビット=10のn乗

  • 基本情報の浮動小数点について

    基本情報技術者試験の勉強をしているのですが、浮動小数点の問題がどうしても解けません。問題を読んでもいまひとつ理解できず、四苦八苦しています。 下記の問題なのですが、教えていただけますでしょうか。 (平成12年に出題された問題(十進数0.375を正規化)は、理解できました) 問題集には解き方が載っているのですが、それが理解できません。解き方は以下です。 26.5を長さ32ビットの浮動小数点で表す (1) 26.5を16進数に変換  26.5の2進数:11010.1  11010.1の16進数:0001 1010 . 1000 1  A . 8   (2) 小数点位置の移動          小数点を左に2けた移動:1A.8 → (0.1A8) × 16の2乗  #ここまでは理解できます (3) 指数部の値16の2乗 → 16の0乗を(1000000)2進数=64とする  #ここがまるで分かりません        16の2乗の2を64に加える        1000000 … 64の2進数       + 10 … 2の2進数       ─────        1000010 … 指数の値とする  #「16の0乗を1000000=64とする」の部分が分かりません (4) まとめ  符号 指数部 仮数部   0│1000010│0001│1010│1000│00…0     16の2乗 1  A  8  #符号と仮数部は理解できるのですが、指数部が分かりません よろしくお願いいたします。

  • 基本情報技術者試験の過去問で平成16年度春期 問10が分かりません。問

    基本情報技術者試験の過去問で平成16年度春期 問10が分かりません。問題は「2種類の文字‘A’、‘B’を1個以上、最大n個並べた符号を作る。60通りの符号を作るときのnの最小値は幾らか。」です。解説としては「文字A、Bをn個並べたとき、表せる符号の数は、2のn乗とおりとなる。従って、60通りの符号を表すnの最小値は、 2の1乗+2の2乗+2の3乗+2の4乗+2の5乗=62 より、5であることがわかる。」となっています。 「文字A、Bをn個並べたとき、表せる符号の数は、2のn乗とおりとなる」のであれば、2の6乗=64なので6ではないかと考えたのですが、なぜ「2の1乗+2の2乗+2の3乗+2の4乗+2の5乗=62 より、5であることがわかる。」となるのでしょうか? 本当に無知で恥ずかしいのですが、誰か分かりやすく教えていただけないでしょうか?

  • 補数について教えてください!

    情報処理技術者試験の内容なんですが、やり方も理解できず悩んでいます。教えてください。 その1. 2の補数を使って解きなさい   0110  -)0111 ------------ その2. 次の2進数は2の補数であらわした負の値である。符号付きの10進数に変換しなさい。  1) 1001  2) 1010  3) 1111  4) 1000 その3. 次の10進数を2の補数(4ビット)に変換しなさい。  1)-6  2)-3  3)-5  4)-4 本を見ながら解いているのですがいまいち理解できません。お手数お掛けしますが、解る方がいらっしゃいましたら解説付で教えてくださると助かります!よろしくお願いいたします!

  • マイコンのビット数とクロック数

    マイコンの勉強をしています.まだまだ初心者で,とてもくだらない質問かもしれないのですが,マイコンのビット数について尋ねさせて下さい. マイコンには8ビットマイコンとか16ビットマイコンとか32ビットマイコンとかありますよね.少し調べてみると,このnビットマイコンのnを,何と定めるかの厳格な定義はないようでレジスタの幅や内部データバスの幅などとなっているようですね(?) これはつまり,1回で処理出来る,通信できるデータの大きさという理解でよろしいのでしょうか?16ビットマイコンは8ビットマイコンより8ビット大きいデータを処理出来るわけですから,2の8乗倍で256倍の速さってことですか? と,いうことは,8ビットマイコン256MHzのマイコンは,16ビット1MHzのマイコンと同等の処理ができるということなのでしょうか? 回答お待ちしております.

  • 伝送時間の計算

    基本情報処理の伝送時間の計算について質問です。 64kビット/秒の回線を用いて10(6乗)バイトのファイルを送信するとき,伝送におよそ何秒掛かるか。ここで,回線の伝送効率は80%とする。(基本情報処理試験 平成25年度 秋 午前より) 答えは156なんですが、自分流の計算式ですと、 1 (秒) : 64000ビット = X (秒) : 8 000 000 (10の6乗*8) すると答えは125と出ます。それを0.8で割ると答えがでます。 しかし、なぜそこで0.8を割らなければいけないのか?そもそも伝送効率とは何なのかがよくわかりません。 もしもっと容易に理解できる式があればどなたか教えていただけないでしょうか? 宜しくお願いします。

専門家に質問してみよう