在Ruby中添加Hex值的最佳方法

时间:2012-06-20 17:53:15

标签: ruby

我有一个十六进制值(0x0020004E0000 ...这是硬件地址的基地址)。我需要为每个寄存器添加0x04到基数。我一直在这样做,首先将基地址转换为基数10,然后将4加到该值。然后,我将通过字符串类.to_s和.to_i转换回十六进制。

有更好的方法可以做到这一点,所以我不是一直在基数10和基数16之间来回转换吗? (仅供参考,在我以前的AppleScript脚本中,我对操作系统中的十六进制数学进行了处理,并让bc为我添加了添加内容)。

3 个答案:

答案 0 :(得分:7)

0x0020004E0000 + 0x04

或只是

0x0020004E0000 + 4

答案 1 :(得分:1)

您可以通过四种方式在Ruby中表示整数值

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

# These are all 64.

答案 2 :(得分:0)

数字是一个数字,无论它如何在内部表示或显示给用户。只需像添加任何其他数字一样添加它们。如果你想查看它们之后是十六进制,那么很好;将它们格式化为输出。

你的代表性与价值相混淆。 Ruby可以解析以十六进制表示的数字,也可以解析十进制,二进制或八进制值。

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

同样的事情。