基本情報技術者試験の勉強をしている初学者です。
参考書を見ながら勉強をしているのですが、解説を見ても分からない問題がありますので分かり易く解説していただけないでしょうか。
問 ある整数値を、負数を2の補数で表現する2進表記法で表すと最下位2ビットは11であった。
10進表記法の下で、その整数値を4で割ったときの余りに関する記述として、適切なものはどれ
か。ここで、除算の商は、絶対値の小数点以下を切り捨てるものとする。
ア その整数値が正ならば3 イ その整数値が負ならば−3
ウ その整数値が負ならば3 エ その整数値の正負にかかわらず0
No.2ベストアンサー
- 回答日時:
「2の補数」とは、相互に足し合わせると「桁あふれ + 0」になる数のことです。
つまり「4ビットの数」たとえば「0101」があるときに
0101 + 1011 = 1 0000
になるので、右辺の「最上ビット(5ビット目)」が「桁あふれ」で消えるとすれば
0101 + 1011 = 0000
ということになって、「たし合わせると 0 になる数」なので
「0101 の絶対値が同じ負の数は 1011」
ということになります。
それが「2の補数」です。
このためには、「すべての数を4ビットで表わす」(5ビット目は無視する)という「固定ビット数」の表記であることが条件です。
たとえば「4ビット」なら
・正数:0000~0111(10進数で 0~7)
・負数:1111~1000(10進数で -1~-8)
ということになります。
このように、再上位ビットが「0」なら正数を、「1」なら負数を表わすことになり、実質的に「最上位ビットが符号を表す」ことになります。ただし、負数の場合には残りビットをそのまま読んでも「絶対値」にはならないので要注意です。(あくまで「足して 0 になる」という数ですので)
「2の補数」の作り方は
・元の数:0101
↓
・0 と 1 とを逆転させる
→ 1010
(これを「1の補数」と呼ぶことがある)
↓
・それに「1」を加える
→ 1011
で出来上がり。
元の数に「1の補数」を加えると
0101 + 1010 = 1111
になるので、これに「1」を加えれば
1111 + 0001 = 1 0000
になるからです。
この「2の補数の作り方」は「正数→負数」を作るときだけではなく、「負数→整数」を作るときも全く同じです。
試しにやってみてください。
これを理解した上で、問題に当たれば
>最下位2ビットは11であった。
これは、上のような「4ビット」の数の場合だと
**11
ということです。
これが「正数」であれば、「**11」が絶対値ですから、4で割ったときの余りは
0011
になります。つまり、10進数で「3」。
これが「負数」であれば、絶対値は「**11」から「2の補数」を作って
・元の数:**11
↓
・0 と 1 とを逆転させる
→ **00
↓
・それに「1」を加える
→ **01
これを4で割ったときの余りは
0001
なのですが、負数を割ったときでも余りは「必ず正数」なので、「絶対値を割ったときの余りが1」なら、その負数を割ったときの余りは
4 - 1 = 3
ということになります。
たとえば、10進数だと
-13 ÷ 4 = -4 余り 3
になりますね。
絶対値だと
13 ÷ 4 = 3 余り 1
となります。
つまり、余りは10進数で「3」。
ということで、元の数が正でも負でも余りが「3」なので、選択肢では
「アとウ」
ということになります。
選択肢2つを選んでよいのかどうかわからないが、ここではそういうことになる。
「2の補数で、負数を表記する」というのは、今後も何度も出て来ると思いますので、きちんと理解しておいた方がよいと思います。
実際のコンピュータで大きな桁数でデータを扱う場合でも、負数を「2の補数」で表します。これは、コンピュータでも、「最上位の桁数の1つ上に桁あふれすると、そのビットは消えてしまう」ということを利用しているからです。
なんか、あふれたビットがどっかに消えちゃうという「いい加減なごまかし」をしているみたいですけどね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 情報処理技術者・Microsoft認定資格 情報技術の問題についてです。 10進数の−36を以下のような16ビットの浮動小数点表示にするといくつ 3 2022/05/21 19:53
- 数学 以下の問題が分かりません。 8ビット浮動小数点数が、最上位ビットから順に符号1ビット、指数部3ビット 4 2023/07/22 16:06
- Ruby VBA 2 2023/01/14 14:14
- 情報処理技術者・Microsoft認定資格 基本情報技術者試験について 基本情報技術者試験の午後問題についてなのですが、 大門①の情報セキュリテ 1 2022/10/30 00:34
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分 1 2022/07/19 17:03
- その他(教育・科学・学問) 小学生の算数の商について 3 2023/03/06 14:11
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 malloc関数を使ってください!お願いします! 最 1 2022/07/21 09:28
- 簿記検定・漢字検定・秘書検定 1週間後にネット試験で日商簿記3級を受験する商業高校生です。 1 2022/09/12 22:29
- C言語・C++・C# 至急お願いします。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分母 3 2022/07/19 17:09
- 数学 問題文 正n角形がある(nは3以上の整数)。この正n角形のn個の頂点のうちの3個を頂点とする三角形に 4 2023/03/22 14:57
関連するカテゴリからQ&Aを探す
医師・看護師・助産師
薬剤師・登録販売者・MR
医療事務・調剤薬局事務
歯科衛生士・歯科助手
臨床検査技師・臨床工学技士
理学療法士・作業療法士・言語聴覚士
臨床心理士・心理カウンセラー・ソーシャルワーカー
介護福祉士・ケアマネージャー・社会福祉士
弁護士・行政書士・司法書士・社会保険労務士
フィナンシャルプランナー(FP)
中小企業診断士
公認会計士・税理士
簿記検定・漢字検定・秘書検定
情報処理技術者・Microsoft認定資格
TOEFL・TOEIC・英語検定
建築士
インテリアコーディネーター
宅地建物取引主任者(宅建)
不動産鑑定士・土地家屋調査士
マンション管理士
電気工事士
美容師・理容師
調理師・管理栄養士・パティシエ
シェフ
保育士・幼稚園教諭
教師・教員
国家公務員・地方公務員
警察官・消防士
その他(職業・資格)
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実績を積むという表現
-
「最大300字程度」
-
【機械図面】 最大値・最小値...
-
「充足に達しましたので」これ...
-
変電所のことをS/Sと表現するそ...
-
敬語の使い方
-
桁あふれがわかりません
-
伝送時間の計算
-
サブネットマスクの計算方法に...
-
フォトショップをつかって質感...
-
高窓(ハイサイド窓)を平面図...
-
どなたか教えいただけませんか?
-
言葉遣いについて ○○を取りに行...
-
10分の1は「10/1 それとも1/10...
-
1億x1億はいくらでしょうか?
-
50以下は“50”も入るのですか?
-
5進法を10進法への直し方
-
100以下の自然数のうち、次のよ...
-
エクセル関数で源泉徴収額を計...
-
8進数から16進数 16進数から8進数
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
おすすめ情報