次の二進数を10算数に変換しなさい。ただし、二進数は4ビットの整数とし、負の値は補数表現されている。という問題で、0111だったら8×0+4×1+2×1+1×1=7という風に求めていたのですが以下の問題はこのやり方では解けないのでしょうか?1111、1101の補数表現されている問題だと1111だったら15になってしまい-1という答えに辿り着けません。できるだけ引き算のようなやり方がよく分からないのでそれ以外の方法もしくは分かりやすく教えて頂けるとありがたいです。(長々と失礼しました。)

1件の回答

回答を書く

1254021

2026-04-12 22:30

+ フォロー

2進数は4ビットの整数とし、負の値は補数表現されている

この表記の場合は

1111はマイナスの値です。

0111はプラスの値です。



先頭の桁が1なら負数、0なら正数を意味します。

で「補数表現で」があるので

1111は、マイナス値でその値は0111のマイナス値を意味します。

補数表記の場合は、0と1を反転して+1するとその値の絶対値になります。



1111

0000←反転して

0001←+1する

結果は1となりますが、

2進数で0001は10進数の1なので

マイナス値であった訳ですからマイナス符号を付けて-1になります。



1101

0010←反転して

0011←+1する

2進数で0011は10進数の3なので

結果は-3

うったえる有益だ(0シェアするブックマークする

関連質問

Copyright © 2026 AQ188.com All Rights Reserved.

博識 著作権所有