質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.53%

  • 基本情報技術者

    53questions

    基本情報技術者とは、経済産業省が行う国家資格「情報処理技術者試験」の区分の一つです。試験ではプログラマーやシステムエンジニアなどIT業界で働くために必要とされる基礎知識や情報処理において論理的な考え方ができるか等が問われ、企業から高い評価を獲ることができ、IT業界の入門的な資格として人気があります。

【基本情報技術者試験】符号なしの数値として解釈した10進数について

受付中

回答 4

投稿

  • 評価
  • クリップ 0
  • VIEW 696

ai5

score 32

基本情報技術者試験

次の問題の解答までの道筋がわかりません。

負数を2の補数で表す8ビットの数値がある。この値を10進数で表現すると
-100である。
この値を符号なしの数値として解釈すると、10進数でいくらか?

答え)156

x-256 = -100

符号なしの数値として解釈とはどのようなもので、
なぜこれは156になるのでしょうか?

お手数ですが、ご教授お願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 4

+1

マイナスは最大bit(MSB)が1であり、10000000は-127です。
そこで -100は8bit符号ありでは以下のように表現できる。
10011100
これを符号なしとすると 156 です。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

先ず100の8bit符号なし2進数表記を考えます。

100=64+32+4
01100100

次に、-100の8bit符号あり2進数表記を考えます。

10011011 1の補数(ビットを反転)
10011100 2の補数(1加算)

最後に、8bit符号なし2進数として読みます。

128+16+8+4=156

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/03/13 17:15

    お返事遅くなって申し訳ないです。。

    約一か月で基本情報にうかる水準に達しないとどうなるかわからないぞ!と
    会社に脅されてまして。。。今かなり追い詰められてます。

    追加の質問なのですが、減算を加算で計算できるようにするため、
    100の符号なしを2進数にしてからそれを-100の符号あり2進数表記にしたのでしょうか?

    初歩的な質問になるのですが、テキスト通りに読んでいてもいまいちよくわからなくて
    1の補数にしてから2の補数にする理由はなんでしょうか?

    10011011 1の補数(ビットを反転) してから1を加算したのですが、
    次のような計算でよろしいでしょうか?

    10011011の1桁目と2桁目は1+1で繰り上がり、繰り上がった1が3桁目に残った

    以上、お手数ですがご教授お願いします。

    キャンセル

  • 2017/03/13 17:30

    1の補数のままだと、-0という概念が含まれたものになってしまうので、
    それを詰め、-0を-1として扱うということで、1を加算します。
    0のマイナス表記を考えてみると面白いと思います。
    0000 0000 8bit符号なしの0
    1111 1111 1の補数
    1 0000 0000 2の補数(9bit目は桁あふれなので無視して結果0)



    キャンセル

  • 2017/03/13 18:23

    すみません。。もう少しでわかりそうなのですが
    1の補数のままだと、-0という概念が含まれたものになってしまうので、
    それを詰め、-0を-1として扱うということで、1を加算します。 の解釈ができません。

    -0に1を加えることでー1になるんですか?

    キャンセル

  • 2017/03/13 18:38

    1の補数のまま(単なるビット反転)だと、0(0000 0000)をビット反転させた(1111 1111)が、「-0」という扱いになります。
    これではよろしくないので、0 をマイナスにしても 0 になるように、1の補数を取ってから1を足す、というのが考えだされました。これが2の補数です。(1111 1111 + 0000 0001 = 1 0000 0000 ですが、最上位の 1 は捨てられるので 0000 0000 となる)
    1の補数では (1111 1111) は -0 ですが、2の補数では -1 を表しています。2の補数では-0がない分、表せる数が一つ増えています。
    ※2の補数では - 側が1つ大きい数値になる(8bit では -128~127 までを表現できる)

    キャンセル

  • 2017/03/13 18:46

    余談:基本情報って、受験者(願書提出ではなく、試験日に実際に試験を受けた人数)に対する合格率がよくて3割です。決して広き門ではないんですよ。
    ※野球選手で考えても、3割バッターって相当のもんですよね
    これがITパスポートだとしたら合格率が約5割なので、発破掛けられるのも仕方がないかとは思いますが

    キャンセル

  • 2017/03/13 19:08

    補足ありがとうございます。
    ここら辺は補数を使った場合の利点を把握できると、
    理解しやすいと思いますが・・・なかなかわかりずらいものだと思います。

    勉強が進んでいないようであれば、ここは一旦放置して、他の部分を勉強するのもありです。
    結局のところ、午前午後でそれぞれ60%以上正解出来ていれば合格なので・・・
    (今もそうですよね?)

    ただ、仕組みさえ理解できていれば、どんな問題が来ても
    解きやすい部類の問題であるのも確かです。頑張ってください。

    余談:IPAがやってる試験は統計情報公開しているので眺めていると面白いですよね。

    キャンセル

  • 2017/03/14 09:25

    皆様ありがとうございました。前よりわかるようになってきました。
    今は試用期間なので下手するとくびですかね?
    労働基準法的にはNGだとは思いますが

    キャンセル

+1

8 ビットの二進数を考えます。
最小値は 0 で、二進数で表すと 0000 0000 です。
最大値は 1111 1111 で、十進数で表すと 255 です。
この最大値に 1 を足すと、1 0000 0000 となり、桁あふれしてしまいます。あふれた最高位を削除すると 0000 0000 となります。

つまり、8 ビットの二進数で考える限り、1111 1111 + 0000 0001 = 0000 0000 が成り立ちます。これを変形すると、0000 0000 - 0000 0001 = 1111 1111 となります。
十進数で表記すると、0 - 1 = 255 つまり -1 = 255 となるのです。
8 ビット二進数では、-1 も 255 も、ともに 1111 1111 です。

しかし、それでは都合が悪いこともあります。そこで、一番上のビットが 1 である時だけ負の数とみなそうじゃないかというのが問題の「負数を2の補数で表す8ビットの数値」です。この最上位ビットを符合と呼びます。
この場合、最大値は 0111 1111 = 127 であり、最小値は 1000 0000 = -127 です。

符合無しの数値とは、一番上のビットを負の数の符号として使わない方法で表せる数値で、先程の説明のように 0 から 255 までの数になります。

二進数では同じ表現でも、十進数では二種類の数を表します。

この問題は、十進数で -100 となる数を符合ありの二進数で表し、それを符号なしの二進数と解釈すると十進数ではいくらになるかという問題です。

0000 0000 は 0 または 256 になりますから、変換には 256 から元の数を引けばいいということになります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

符号ありの場合は、先頭ビットに1が立っていれば負数として扱いますが、符号なしの場合はその規則を適用せず、正の2進数として扱います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

同じタグがついた質問を見る

  • 基本情報技術者

    53questions

    基本情報技術者とは、経済産業省が行う国家資格「情報処理技術者試験」の区分の一つです。試験ではプログラマーやシステムエンジニアなどIT業界で働くために必要とされる基礎知識や情報処理において論理的な考え方ができるか等が問われ、企業から高い評価を獲ることができ、IT業界の入門的な資格として人気があります。