私は 2 の補数に関連する aq を持っています。たとえば、2 の補数表現で符号付き 16 ビット 16 進数があるとします。
16ビットの場合は、現在12ビットしかないため、拡張する必要があります。左側を拡張する必要があることはわかっているので、0xffaa にします。
それは私の数が負であることを意味します、それは正しいですか?
私は 2 の補数に関連する aq を持っています。たとえば、2 の補数表現で符号付き 16 ビット 16 進数があるとします。
16ビットの場合は、現在12ビットしかないため、拡張する必要があります。左側を拡張する必要があることはわかっているので、0xffaa にします。
それは私の数が負であることを意味します、それは正しいですか?
私があなたの質問を理解していれば、あなたは正しいです。
12ビットの2の補数の負の数の場合は、上位ビット(通常はビット11と呼ばれます)を取得し、左側のすべてのビットにコピーして、16の上位4ビットを埋めます。 -ビット相当。あなたが持っている12ビットの値は、あなたが質問で言ったように0xfaa
、16ビットの値になります。0xffaa
バイナリでは、12ビット値は
111110101010
^
+---- bit 11
そして16ビット値になります
1111111110101010
^ ^
| +-------- bit 11
+------------ bit 15
2つの単語の長さが異なるということは、2つの数字が等しいという事実を変えるものではありません。
最上位桁を 0 にすると、0x0faa になります。想定して f がそこに行く場合、数値の値が変更されています。