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

符号付整数の演算結果を答えよ
(16進数表記で負数は2の補数を用いて表す)。
という問題ですが、①の計算方法が分からないので
導き方を教えてください

「符号付整数の演算結果を答えよ (16進数」の質問画像

A 回答 (1件)

なんか、正攻法ではなくて、2の補数表現の性質を使った裏技的な方法で書いてるなぁ。



1)正攻法
2の補数表現を使った符号付き2進数(16進数)同士の掛け算は、
その2進数(16進数)を「符号無し整数」として掛け算して(上位に溢れたビットは無視して)
答えを「符号付き整数」として解釈することで、求めることができます。
F81×FFF = F8007F → 溢れた上位を無視すると 07F

2)この問題限定
FFF は -1 です。ということは、符号が反転するだけです。
F81 の符号を反転させると 07F です。 (1000-F81=07F)

3) 16進数で ?F は (?+1)0 - 1 になります。
まともに16進数から10進数を計算するなら
? × 16 + F となりますが、
(?+1)×16 -1 の方が計算が楽なこともあります。
    • good
    • 0
この回答へのお礼

ありがとうございます!

お礼日時:2019/11/07 15:31

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