HOME»基本情報技術者試験掲示板»平成18年 秋期 午前 問5 について

基本情報技術者試験掲示板

掲示板検索:

[2924]平成18年 秋期 午前 問5 について

クマさん(No.1)
この問題において、16ビットの最小値は
−32768で
1000 0000 0000 0000
となっていますが、これだと32768との区別が付かないと思うのですが…

先頭の1ビットが符号ビットなら
上の16ビットは2の補数で表現する前に
  0  ということになりませんか?
2021.02.23 17:02
クマさん(No.2)
今の考えをまとめました

2進数の  ?  1000 0000 0000 0000
32768
              0111 1111 1111 1111

2の補数表現?1000 0000 0000 0000
の −32768
    ?
−0(マイナスが付いても0は0)
との区別が付かないのでは?
2021.02.23 17:20
クマさん(No.3)
この考えだと16ビットの最大値が
1111 1111 1111 1111
になってしまいましたね。
てことは何が違うのでしょうか?
2021.02.23 17:25
ミルキー@管理人(No.4)
解説にも記載しておりますが、16ビットの固定小数点数では32767(2^16 -1)までしか表現できません。その理由はお気付きの通り正負の見分けがつかないからです。
2021.02.23 17:28
クマさん(No.5)
@管理者さん

計算して、考えをまとめました。
おっしゃる通りで正負の見分けが付きません。
ですので、2の補数で表現する上

2進数の     1000 0000 0000 0000@
32768
            0111 1111 1111 1111A

2の補数表現 1000 0000 0000 0000B

とした場合に、@はマイナスの値にになるのではないか?というのが疑問です。

その上でもう一つあるのですが、
@がマイナスの値にならないのであれば、
最大値は 1111 1111 1111 1111
となり、表現できる範囲は最大32767
ではないのではないか?

というの疑問もでてきたのですが……
2021.02.23 17:51
ミルキー@管理人(No.6)
すみません。説明に誤りがありました。
×  32767(2^16 -1)
○  32767(2^15 -1)

固定小数点数では先頭が1のビット列は負数とみなします。なので、先頭ビットを0にし、その他のビットを1にしたビット列が正の数の最大値となります。

0 → 0000 0000 0000 0000
1 → 0000 0000 0000 0001

32767 → 0111 1111 1111 1111(正の数の最大値)

-1 → 1111 1111 1111 1111
-2 → 1111 1111 1111 1110

-32768 → 1000 0000 0000 0000(負の数の最大値)
2021.02.23 18:02
クマさん(No.7)
ということは
−32768を2の補数表現する際に
マイナスを切り取った32768を@で使っていますが、

この場合は計算上こう表現しているだけで、
「符号ビットの影響は受けず、最大値としても使えない」
ということでしょうか?
2021.02.23 18:14
ミルキー@管理人(No.8)
マイナスを切り取った32768 というのがいまいちわからないのですが、

+32768 → 1000 0000 0000 0000 を2の補数で表現すると、0111 1111 1111 1111 + 1 → 1000 0000 0000 0000 になりますよね。16ビットの範囲だと +32768のビット列と、-32768を2の補数で表現したビット列が同じになるので、負数の方に割り当てている感じです。わかりにくいですかね。
2021.02.23 18:21
クマさん(No.9)
マイナスを切り取った32768というのは、@の1000 0000 0000 0000  のことです。
-32768を2の補数で表現する上、@を反転させて表現しているので、その際に@が一時的に+32768に成っているという事です。

2の補数で表現する上、
-32768〜+32767  までが表現可能との事ですが、@管理者さんの説明内の

+32768 → 1000 0000 0000 0000 

ここの時点で符号ビットが1なのでマイナスになるのではないか。というのが疑問です。
2021.02.23 18:47
ミルキー@管理人(No.10)
コンピュータがどのような内部処理を行っているかまでは分かりませんが、仮に演算過程で一時的にそうなっていても、最終的にビット列と数値は一意に関連付けられているので特に問題はないように思います。
2021.02.24 11:48
クマさん(No.11)
なるほど……
計算自体、人間に都合のいいように作られたものですし、
内部処理の過程に一々気にしてたら駄目でしたね。

こういうものだと捉えておきます。
@管理者さん
ありがとうございました。
2021.02.24 13:06

【返信投稿用フォーム】

お名前(10文字以内)

顔アイコン


本文(2,000文字以内)

本投稿を削除するためのパスワード(20文字以内)

プレビュー
※CBT方式においては出題内容の公開は禁止されているため、出題内容を尋ねたり、出題内容を特定できる類の投稿を禁止します。
※宣伝や迷惑行為を防止するため、当サイトとIPAサイト以外のURLを含む文章の投稿は禁止されています。

投稿記事削除用フォーム

投稿No. パスワード 
© 2010-2021 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop