我有一个十六进制值(0x0020004E0000 ...这是硬件地址的基地址)。我需要为每个寄存器添加0x04到基数。我一直在这样做,首先将基地址转换为基数10,然后将4加到该值。然后,我将通过字符串类.to_s和.to_i转换回十六进制。
有更好的方法可以做到这一点,所以我不是一直在基数10和基数16之间来回转换吗? (仅供参考,在我以前的AppleScript脚本中,我对操作系统中的十六进制数学进行了处理,并让bc为我添加了添加内容)。
答案 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)
同样的事情。