アプリ版:「スタンプのみでお礼する」機能のリリースについて

解説お願いします
二進数10進数の問題です

「解説お願いします 二進数10進数の問題で」の質問画像

A 回答 (1件)

問13


8桁の2進数とは
0000 0000 ~ 1111 1111
ですが、「負の整数を2の補数で表す」ということは、先頭の1桁は「符号」を表わすことになります。
つまり
正の整数:0000 0001~0111 1111
に対して
 0000 0001 の負数→ 1 0000 0000 - 0000 0001 = 1111 1111
 0111 1111 の負数→ 1 0000 0000 - 0111 1111 = 1000 0001
ということで、負の整数を
 1111 1111~1000 0001、もう1つ上の 1000 0000 まで
で表します。
なぜなら、足し合わせれば
 0000 0001 + 1111 1111 = (1) 0000 0000
で「8桁の2進数」で見れば「足してゼロ」になるからです。(桁あふれを意図的に利用した「ずるい」演算方法)

ということで、8桁2進数で表せる範囲は
 1000 0000~0111 1111
これを10進数にすれば
 -1000 0000~0111 1111
つまり
 -128~127
です。

問14
符号なしの場合
 1100 1101 (2)
= 1 * 2^7 + 1 * 2^6 + 0 * 2^5 + 0 * 2^4 + 1 * 2^3 + 1 * 2^2 + 0 * 2^1 + 1 * 2^0
= 128 + 64 + 8 + 4 + 1
= 205

符号付きの場合
 1100 1101 (2)
の絶対値は
 1 0000 0000 - 1100 1101 = 0011 0011 (2) (注)
= 32 + 16 + 2 + 1
= 51
なので
 1100 1101 (2)
= -51 (10)

(注)原理が分かれば、次からは機械的に
 1100 1101
→ 0 と 1 を反転して 0011 0010
→ 1 を加えて 0011 0011
で求まります。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!