離散数学 (全108問中57問目)

No.57

負数を2の補数で表すとき,すべてのビットが1であるnビットの2進数"1111…11"が表す数値又はその数式はどれか。
  • −(2n-1−1)
  • −1
  • 0
  • 2n−1
  • [出題歴]
  • 基本情報技術者 H15秋期 問3

分類

テクノロジ系 » 基礎理論 » 離散数学

正解

解説

2の補数表現された負数の絶対値を求めるには、2進数の整数を2の補数表現に変換するために行う「全ビットを反転してから1を足す」手順をもう一度実行します。

例として全ビットが1である負数「1111」で考えてみると、
  • 全ビットを反転 1111→0000
  • 1を足す 0000→0001
となり、絶対値が1の負数、すなわち2の補数表現での1111は10進数では−1であることがわかります。

同様に、
  • 全ビットを反転 1111 1111→0000 0000
  • 1を足す 0000 0000→0000 0001
や、
  • 111 1111 1111→000 0000 0000
  • 1を足す 000 0000 0000→000 0000 0001
などのようにどれだけ桁が増えても2の補数で表現された"1111…11"は−1を表していることになります。
  • −(2n-1−1)となるのは、2の補数表現で"1000…01"の場合です。
  • 正しい。
  • 0となるのは、2の補数表現(または2進数)で"0000…00"の場合です。
  • 2n−1となるのは、2の補数表現で"0111…11"の場合です。
© 2010-2024 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop