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

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

新規登録して質問してみよう
ただいま回答率
85.48%
基本情報技術者

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

Q&A

4回答

4360閲覧

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

ai5

総合スコア40

基本情報技術者

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

0グッド

0クリップ

投稿2017/03/02 07:10

基本情報技術者試験

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

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

答え)156

x-256 = -100

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

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

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 から元の数を引けばいいということになります。

投稿2017/03/02 09:09

Zuishin

総合スコア28660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

先ず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/02 08:56

編集2017/03/02 08:57
abs123

総合スコア1280

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ai5

2017/03/13 08:15

お返事遅くなって申し訳ないです。。 約一か月で基本情報にうかる水準に達しないとどうなるかわからないぞ!と 会社に脅されてまして。。。今かなり追い詰められてます。 追加の質問なのですが、減算を加算で計算できるようにするため、 100の符号なしを2進数にしてからそれを-100の符号あり2進数表記にしたのでしょうか? 初歩的な質問になるのですが、テキスト通りに読んでいてもいまいちよくわからなくて 1の補数にしてから2の補数にする理由はなんでしょうか? 10011011 1の補数(ビットを反転) してから1を加算したのですが、 次のような計算でよろしいでしょうか? 10011011の1桁目と2桁目は1+1で繰り上がり、繰り上がった1が3桁目に残った 以上、お手数ですがご教授お願いします。
abs123

2017/03/13 08:30

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

2017/03/13 09:23

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

2017/03/13 09: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 までを表現できる)
tacsheaven

2017/03/13 09:46

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

2017/03/13 10:08

補足ありがとうございます。 ここら辺は補数を使った場合の利点を把握できると、 理解しやすいと思いますが・・・なかなかわかりずらいものだと思います。 勉強が進んでいないようであれば、ここは一旦放置して、他の部分を勉強するのもありです。 結局のところ、午前午後でそれぞれ60%以上正解出来ていれば合格なので・・・ (今もそうですよね?) ただ、仕組みさえ理解できていれば、どんな問題が来ても 解きやすい部類の問題であるのも確かです。頑張ってください。 余談:IPAがやってる試験は統計情報公開しているので眺めていると面白いですよね。
ai5

2017/03/14 00:25

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

0

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

投稿2017/03/02 07:26

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

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

投稿2017/03/02 07:13

swordone

総合スコア20651

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問