平成30年 春 問1について

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
momoさん  
(No.1)
解答では、正の数は2の補数を使わないのでと記載されてます。

ただ、問題文では、負数を2の補数で表現する2進表記法で表すと記載されていますので、ある整数値が、(正の数であっても)負の補数で表現した場合と解釈できるため、この解説を疑問に感じてしまいます。

負の数の方が元々負数なので、2の補数を使わないではないでしょうか?
2025.10.24 23:53
QMさん 
FE ゴールドマイスター
(No.2)
> ある整数値が、(正の数であっても)負の補数で表現した場合と解釈できる

この解釈がよくわからないですが・・・

正の数は普通に2進数表記すればいいですが、
負の数を表現する方法はいろいろ考えられます。

例えば最上位ビットで符号を変えるだけで、残りは触らない
(3⇒011 に対し、-3⇒111)
という方法でもいいわけです。

そのため、ルールの共通認識がないと解釈が違ってしまうので、
この問題では、負の数を表現する時は2の補数を使うルールとする、
と言っているわけです。

正の数には2の補数は適用されていないので、そのまま解釈する。

負の数は2の補数適用後に11となっている数なので、
絶対値を知るには符号を反転させるためにもう一度2の補数を適用してから見る、
ということです。
2025.10.25 11:44
momoさん  
(No.3)
>正の数には2の補数は適用されていないので、そのまま解釈する。
問題文には、「ある整数値を,負数を2の補数で表現する2進表記法で表すと最下位2ビットは”11″であった。」と記載がありますが、そのままではなく、文脈上は、その正の数を負数にしてから2の補数で表現する….と解釈できると思いますがいかがでしょうか?

なぜ、ある整数値が正の場合は、最下位2ビットは”11″になるのでしょうか? 問題文から、ある整数値を,負数を2の補数で表現する2進表記法で表したものが、最下位2ビットは”11″になるのではないかと思います。

この問題Geminiに聞いてもアではなく、私の周りでも解答が割れているのでここで取り上げさせていただきました。一部ネット上でもこの問題に関して疑問を投げかけている記事がありました。
2025.10.26 06:23
QMさん 
FE ゴールドマイスター
(No.4)
> ある整数値を,負数を2の補数で表現する2進表記法で表したものが、最下位2ビットは”11″になるのではないか

だから、「負数を」2の補数で表現します。
正数は負数ではないので、補数にしません。(たぶんここの認識が違う)

正の数も補数にするなら、「負数を」と書く必要はないし、負数とどう区別するのか疑問です。
負数を2の補数で表現する2進表記法だと、例えば4桁なら
+3 ⇒ 0011
-3 ⇒ 1101 (+3に対して2の補数を適用したものが-3)
なのですが、
momoさんの解釈だと+3と-3はどう表現するのでしょう?

余りの考え方で混乱して間違うのなら、ありがちな話なんですけど・・・
2025.10.26 10:57
momoさん  
(No.5)
>だから、「負数を」2の補数で表現します。
>正数は負数ではないので、補数にしません。(たぶんここの認識が違う)

この認識は合っております。

その他の部分もおっしゃる通りです。

私の質問の論点を、誤解されているようですので、再度私の疑問点を整理して記載させていただきます。

私の疑問点は一言で言うと、問題文「ある整数値を,負数を2の補数で表現する2進表記法で表すと…」の部分の解釈です。

この表現は、「ある整数値を、負数に変換した場合2の補数で表現する2進表記法で表すと…」と言い換えることができると思います。これは生成AIにも確認しました。

さらに、ある整数値が、正の数であった場合、最下位2ビットは”11″になるのでしょうか? 負数を2の補数で表現する2進表記法で表した場合が、最下位2ビットは”11″なのではないでしょうか?
2025.10.27 03:08
QMさん 
FE ゴールドマイスター
(No.6)
> ある整数値を、負数に変換した場合2の補数で表現する

なるほど、ここの認識の違いですね。

私の方は、あくまで「ある整数値」そのものが対象であって、「ある整数値を負数に変換したもの」が対象ではないと認識しています。
ただし、その整数値には正負がありうる、そして負数の表現ルールはいろいろありうるので、負数の表現についてのルールを明記している。

言い換えるなら、
「ある整数値を、負数の場合は2の補数で表現する2進表記法で表す」
です。

momoさんの解釈の場合、問題文は
「ある整数値を、正数は負数に変換して2進表記法で表す。負数の表現には2の補数を使う。」
のように書くことになると思います。

まあ、絶対にそう読めないことを言語学的に説明できるほどの力は私にはないので、普通に読んだらこうだと思うんだけど、という主張しかできませんが。

他にうまく説明できる方がいれば、お任せします。
2025.10.27 10:10
momoさん  
(No.7)
ご丁寧に返信いただき、ありがとうございます。

「ある整数値は最下位2ビットは”11″であった。その整数値が負数であった場合、2の補数で表現する2進表記法で表している。」との記載であれば、皆が納得なのです。

問題文の日本語が、少し不適切に感じます。
2025.10.27 10:26
電タックさん 
FE ブロンズマイスター
(No.8)
https://www.fe-siken.com/kakomon/30_haru/q1.html

私も問題文を読んだ上でmomoさんと同じ誤認のような状態になりました。
>ある整数値を,負数を2の補数で表現する2進表記法で表すと最下位2ビットは11であった。

この文章から読み取れるのは条件は
・負数は2の補数を使う
・ある負数を2の補数を使った場合の2進数は11だった
だけな気がしています。

この内容だけで解くことがぶっちゃけ前提だった気がしていて正の数だった場合は・・・を考えるのがそもそも引っ掛けなのではないかと勘ぐってしまいます。
(なぜなら回答のイウエが全て負数を聞いているから)

2の補数の性質が分かっているならば11の場合に補数を戻した値は01になる。
更に問題の割る4の余りというのは下位2ビット以外を考えなくていい
(3ビット目より上位はきれいに割り切られて0となる)
なので結論として
回答の選択肢イウエは選べないのだから、アを選んでね。
というものだったのではないでしょうか
2025.10.27 10:52
jjon-comさん 
FE プラチナマイスター
(No.9)
基本情報 平成30年 春期 午後 問1
https://www.fe-siken.com/kakomon/30_haru/q1.html

> 正数は負数ではないので、補数にしません。(No.4, No.5)

いいえ,間違っています。

3bit長の符号なし整数表現では,次のbit列が次の整数を表します。
111 = +7
110 = +6
101 = +5
100 = +4
011 = +3
010 = +2
001 = +1
000 = 0

3bit長の2の補数表現の場合は,先頭bitが符号bitになり,次の整数を表します。
011 = +3
010 = +2
001 = +1
000 = 0
111 = -1
110 = -2
101 = -3
100 = -4

2の補数表現は,正数も負数も表現できる形式です。
正数の場合は「ビットの0と1を逆にして+1する」という正数→負数への変形処理をしないでも(符号bitが0なので)それ自体が2の補数表現になっているというだけで,例えば「011 = +3」は「3bit長の2の補数表現」です。

ですから,
> 「ある整数値は最下位2ビットは”11″であった。
> その整数値が負数であった場合、2の補数で表現する2進表記法で表している。」
> との記載であれば、皆が納得なのです。
のように,負数だけ2の補数である(正数は2の補数ではない)という表現の方が間違いなのです。

結果として,問題文の次の箇所は
ある整数値を,……その整数値を4で割ったときの……
その整数値が負数であるという限定をしていません。
2025.10.28 12:56
jjon-comさん 
FE プラチナマイスター
(No.10)
いや,No.9 の私の表現は間違っていますね。

> 「ある整数値は最下位2ビットは”11″であった。
> その整数値が負数であった場合、2の補数で表現する2進表記法で表している。」
> との記載であれば、皆が納得なのです。(No.7)

という文は,ある整数が負数であると限定していないです。

> あくまで「ある整数値」そのものが対象であって、
> 「ある整数値を負数に変換したもの」が対象ではないと認識しています。
> ただし、その整数値には正負がありうる
> 言い換えるなら、
> 「ある整数値を、負数の場合は2の補数で表現する2進表記法で表す」
> です。(No.6)

という解釈も正しいです。

結局のところ私は,H30春 問1 の問題文の表現で簡潔かつ十分だと捉えているということになります。
2025.10.28 13:09
momoさん  
(No.11)
何人かの人、さらには生成AIまでも解釈が分かれていたので、今回のスレを上げさせていただきました。

間違って解釈している根本原因は、国語力のなさなのでしょうかね。。。

いまだに腑に落ちないですね。。。。
2025.10.28 23:56
momoさん  
(No.12)
誤解されている部分がございますので、加筆させていただきます。

「ある整数値は、(正の数でも負の数でも)最下位2ビットは”11″であった。
その整数値が負の数であった場合、2の補数で表現する2進表記法で表している。」
との記載であれば、皆が納得なのです。

私は、元々の問題文が言葉足らずかつ、文法的に正しい表現には思えないですよね。AIに聞いても解釈が違ったのもあり。。。。。
2025.10.29 00:00
jjon-comさん 
FE プラチナマイスター
(No.13)
ある整数値を,負数を2の補数で表現する2進表記法で表すと最下位2ビットは"11"であった。
> この表現は、「ある整数値を、負数に変換した場合2の補数で表現する2進表記法で表すと…」と言い換えることができると思います。

いいえ、できません。

> 私は、元々の問題文が言葉足らずかつ、文法的に正しい表現には思えないですよね。

「次の日本語の係り受けを説明してください」というプロンプトをChatGPTに入力したら、次の回答が得られました。
(ある整数値を
 (負数を 2の補数で 表現する)2進表記法で 表すと)→(条件節)
   │
   └─── 最下位2ビットは "11"であった(主文)
(ある整数値を2進表記法で表すと)というのが基本の節であり、
その2進表記法を補足するために(負数を2の補数で表現する)が登場しています。
ある整数値を → 負数に変換すると、という係り受けの関係だとは ChatGPT は回答しませんでした。
2025.10.29 00:41
momoさん  
(No.14)
@jjon-comさん

生成AIへの質問に関し、情報が欠如しているのでそのような回答になるのではないでしょうか?

「次の日本語の係り受けを説明してください。

ある整数値を,負数を2の補数で表現する2進表記法で表すと最下位2ビットは"11"であった。」

上記のGeminiの2.5Flashでは下記の回答でした。ChatGPT4.1のminiでも概ね同じような回答でした。

私の職場の、周りの複数人も、この問題文には、「日本語がおかしく、消去法でしか正解に導けない」と疑問に思っています。。。。

-------------------
### 1. 文節への区切り

まず、文を意味のまとまりである**文節**に区切ります。

> ある | 整数値を |,| 負数を | 2の | 補数で | 表現する | 2進表記法で | 表すと | 最下位 | 2ビットは | "11" | で | あった | 。

---

### 2. 主要な係り受け

この文は、大きな**条件節**と**主節(結論)**の構造に分かれます。

#### 1. 条件節(~するところまで)
「ある整数値を,負数を2の補数で表現する2進表記法で**表すと**」までが、主節の述語「**あった**」にかかる大きな条件部分です。

* **ある** $\rightarrow$ **整数値を** (連体修飾語 $\rightarrow$ 体言)
    * 「整数値」を限定しています。
* **2の** $\rightarrow$ **補数で** (連体修飾語 $\rightarrow$ 体言)
    * 「補数」の種類を示しています。
* **負数を** $\rightarrow$ **表現する** (連用修飾語 $\rightarrow$ 用言)
    * 「表現する」という動作の対象を示しています。
* **2の補数で表現する** $\rightarrow$ **2進表記法で** (連体修飾語 $\rightarrow$ 体言)
    * 「2進表記法」の具体的な内容を説明しています。
* **2進表記法で** $\rightarrow$ **表すと** (連用修飾語 $\rightarrow$ 用言)
    * 「表す」という動作の手段・方法を示しています。

---

#### 2. 主節(結論)

条件が成立した結果を示す主要な部分です。

* **最下位** $\rightarrow$ **2ビットは** (連体修飾語 $\rightarrow$ 体言)
    * 「2ビット」の位置を限定しています。
* **最下位2ビットは** (主語にあたる) $\rightarrow$ **あった** (述語)
    * この文の**主語**と**述語**の関係です。「最下位2ビットが」どうであったか、という結論です。
* **"11"で** $\rightarrow$ **あった** (連用修飾語 $\rightarrow$ 用言)
    * 述語「あった」の内容(状態)を示しています。

---

### 3. 全体の流れ

文全体の構造は以下のようになります。

$$[ (\text{ある整数値を、負数を2の補数で表現する2進表記法で表すと}) ] \rightarrow [ (\text{最下位2ビットは}) \rightarrow (\text{"11"であった}) ]$$

大きな修飾関係としては、**「表すと」**という条件を示す連用形が、主節全体の述語である**「あった」**に**係って**います。

「ある整数値を、負数を2の補数で表現する2進表記法で**表す**」という**条件**のもとで、「最下位2ビットは"11"で**あった**」という**事実・結論**が成り立つ、という関係です。
2025.10.30 17:08
momoさん  
(No.15)
@jjon-comさん
>「次の日本語の係り受けを説明してください」というプロンプトをChatGPTに入力した>ら、次の回答が得られました。

確かにその通りです。原文をそのように構造変更されると違った意味となってしまうと思います。

原文のまま、生成AIに投げるとNo.14のような回答になるはずです。
2025.10.30 17:41
jjon-comさん 
FE プラチナマイスター
(No.16)
要素を細分化しているか否かの違いだけで、
ChatGPTもGeminiも同じ係り受けの関係だと回答しています。

No.14のGeminiは条件節の係り受けの関係をこうだと回答したのですよね。

ある→整数値を
( 2の→補数で)→表現する→2進表記法で→表すと
     負数を→表現する

私は、Geminiの解説を次のように理解しました。
・「2の補数で」も「負数を」もどちらも「表現する」に係っているので、
  負数を2の補数で表現する、とも書けるし、
  2の補数で負数を表現する、とも書ける。
・「ある→整数値を」は「2進表記法で→表すと」に係っている。
  (これはNo.14のGeminiは明示しておらず、No.13で示されています)

あなたや、あなたの職場の周りの複数人は、
No.14のGeminiの回答を見てもなお、
「ある整数値を → 負数に変換する」という関係に見えるというのですね?
2025.10.30 17:57
momoさん  
(No.17)
@jjon-comさん

>私は、Geminiの解説を次のように理解しました。

Geminiの回答は下記のようになりました。

「ある整数値を、負数を2の補数で表現する2進表記法で表す」という条件のもとで、「最下位2ビットは"11"であった」という事実・結論が成り立つ、という関係だと思います。

jjon-comさんの文章の細分化に関して、文章のピラミッド構造について、同列で考えられてるから、そのように考えられるのではないでしょうか?

----------------------
1点目「2の補数で」「負数を」はどちらも「表現する」に係り、語順は自由。
正しい
目的語と手段を示す副詞句は、意味を変えずに語順を入れ替えられます。

2点目「ある→整数値を」は「2進表記法で→表すと」に係っている。
正しくない
「ある」は「整数値を」に係ってから、その全体が「表すと」に係ります。「2進表記法で」とは並列の関係で「表すと」に係っています。
2025.10.30 18:16
momoさん  
(No.18)
追記 Geminiの回答

この文章の主要な構造は、**「【条件】のもとで、事実【結論】」**という形です。

まず、**「負数を2の補数で表現する2進表記法」という長いフレーズが「表す」**という動詞にかかり、その表記法の具体的な定義を説明しています。

この定義全体が**「条件」**の内容を説明しています(「〜という条件」)。

この**「条件のもとで」という節が、最終的に文全体、すなわち「最下位2ビットは"11"であった」**という事実に係り、その情報が成立する前提を提示しています。
2025.10.30 18:28
jjon-comさん 
FE プラチナマイスター
(No.19)
> 2点目「ある→整数値を」は「2進表記法で→表すと」に係っている。
> 正しくない
> 「ある」は「整数値を」に係ってから、その全体が「表すと」に係ります。
> 「2進表記法で」とは並列の関係で「表すと」に係っています。

失礼しました、私が言いたかったのもそれです。

「(ある→)整数値を」は「(2進表記法で→)表すと」に係っている。
のように補足する語をカッコ扱いにして省略していただいて結構です。
つまり、
> 2点目「整数値を」は「表すと」に係っている。
と言いたかったということです。

で、話を要点に戻したいのですが。

私には No.17 も No.18 も、細かな点に反論なさっているけれど、
「ある整数値を → 負数に変換する」という関係に見える
と主張しているようにも、その点の論拠を示しているようにも読めませんでした。

No.16での疑問の繰り返しになるのですが。
No.14のGeminiの回答(とNo.18のGeminiの追記)を見て、どこが、
「ある整数値を → 負数に変換する」という関係に見えるのですか?
2025.10.30 19:02
jjon-comさん 
FE プラチナマイスター
(No.20)
ちなみに、こうまで話がこじれる状況を目の当たりにしたなら。

私が問題文の作者なら、
ある整数値を,負数を2の補数で表現する2進表記法で表すと
という文を今後は、
ある整数値を,2の補数で表現する2進表記法で表すと
に改めるでしょう。

2の補数形式によって正数と負数を表現できるようになるのは、
基本情報技術者試験のシラバスに載っている、受験者の前提知識です。
負数をなどと親切心?で不要な言葉を添えたのが失敗だと思います。
2025.10.30 19:15
jjon-comさん 
FE プラチナマイスター
(No.21)
「基本情報技術者試験(レベル2)シラバス Ver.9.0」を確認してみたのですが。
シラバスに登場しているのは「補数表現」であり、「2の補数」ではないのですね。
大分類1:基礎理論
中分類1:基礎理論
1.離散数学
(2)数値の表現
負の数の表現(補数表現),小数の表現を理解する

であるならば。

最近は出題されていないけれど、次の問題のような
1の補数表現(縮小基数の補数、減基数の補数)も出題範囲に含まれます。
https://www.fe-siken.com/kakomon/19_aki/q3.html
https://www.fe-siken.com/kakomon/14_haru/q3.html

であるならば。

出題者が負数を2の補数で表現する2進表記法と書いた理由を私は納得できます。
> 負の数を表現する方法はいろいろ考えられます。
とNo.2ですでに述べられているとおり、
負数の表現は2の補数だけじゃない、という点もシラバスに含まれているからです。
2025.10.31 12:09

返信投稿用フォーム

※CBT試験では出題内容の公開が禁止されているため、直接的・間接的を問わず、出題内容や難易度を尋ねる質問は厳禁です。
※宣伝や迷惑行為を防止するため、当サイト、姉妹サイト、IPAサイト以外のURLを含む記事の投稿はできません。

投稿記事削除用フォーム

投稿番号:
パスワード:

その他のスレッド


Pagetop