0

この質問を探し回っていますが、見つからないようです。GDB 逆アセンブル コードを使用している場合、0xfffffff4 のようなものを -0xc に変換するにはどうすればよいですか (オンラインで値を見つけました)。

Perl での実行方法を実装しようとしています。私は16進数を使用していましたが、何をしているのかわかりません:

print hex(shift);
4

2 に答える 2

1

2 の補数です http://en.wikipedia.org/wiki/Two%27s_complement

つまり、すべてのビットを反転してから 1 を追加します。

たとえば、0xffffff04 は 0x000000fb+1=0x000000fc になります。

編集: 元に戻すには、同じことを行います: 0x000000fc は 0xffffff03+1=0xffffff04 になります

于 2012-04-11T23:35:30.027 に答える
1

32 ビット レジスタまたはメモリ アクセスでは、0xfffffff4 is -0xc (または-12) — すべてが 2 の補数を使用する最新の CPU アーキテクチャを想定しています。

于 2012-04-11T23:35:40.653 に答える