だから私は Randall Hyde の本からアセンブリ言語を学ぼうとしています: The art of assembly language, そして私は最初の章の学習を終え、今私は練習をしようとしています. そして、次の質問があります。バイナリ値(正または負)を反対の符号の16進数値に変換するにはどうすればよいですか。そして、はい、バイナリで0から15までの数値を表す方法と、10がfであることも知っています。 on ...私が抱えている問題は次のとおりです..私はこの番号を与えられています:1001 1001と私はそれを反対の値に変換する必要があります.これまでのところ、2の補数を使用してこれを取得しました:
1001 1001 ----->shifting bits -----> 0110 0110
add 1 -----> 0110 0111
そして、最初の数値の逆を取得する必要がありました。代わりに、結果の値を計算すると、次のようになります。
1001 1001 = 2^0+2^3+2^4+2^7 = 1+8+16+128 = 153 (which in my opinion is fine...)
数値を変換すると、次のようになります。
0110 0111= 2^0+2^1+2^2+2^5+2^6 = 1+2+4+32+64 = -103
私は何を間違っていますか?