4

16 進数の値 (0x0020004E0000 ... ハードウェア アドレスのベース アドレス) があります。各レジスタのベースに 0x04 を追加する必要があります。私は、最初にベースアドレスをベース 10 の数値に変換し、次にその値に 4 を追加することでこれを行ってきました。次に、文字列クラス .to_s および .to_i を介して合計を 16 進数に変換します。

これを行うためのより良い方法はありますか? (参考までに、私の以前の AppleScript スクリプトでは、16 進演算を OS にパントし、bc に追加を任せました)。

4

3 に答える 3

9

0x0020004E0000 + 0x04

または単に

0x0020004E0000 + 4

于 2012-06-20T17:55:50.870 に答える
2

Ruby で整数値を表す方法は 4 つあります。

64        # integer
0x40      # hexadecimal
0100      # octal
0b1000000 # binary

# These are all 64.
于 2012-06-20T20:58:01.600 に答える
0

数値は、内部でどのように表現されていても、ユーザーにどのように表示されていても、数値です。他の番号と同じように追加するだけです。後でそれらを16進数として表示したい場合は、問題ありません。それらを出力用にフォーマットします。

あなたは表現と価値を混同しています。Rubyは、10進数、2進数、または8進数の値を解析するのと同様に、16進数で表される数値を解析できます。

0x04 (Hex) == 4 (decimal) == 100 (binary)

すべて同じこと。

于 2012-06-20T18:04:45.190 に答える