在 ruby 中从十六进制转换为十进制

Conversion from hex to decimal in ruby

0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFE_FFFFFC2F.ord => 115792089237316195423570985008687907853269984665640564039457584007908834671663

0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFE_FFFFFC2F.to_i => 115792089237316195423570985008687907853269984665640564039457584007908834671663

有人可以解释一下为什么这两种方法 return 具有相同的整数值吗? 我不确定我是否理解方法顺序...

Returns the codepoint of the first character of the string, assuming a single-byte character encoding"

我发现了,但是这里我得到了一个十六进制值,然后我使用了该方法然后得到了一个十进制值,所以 "What the hex?" :D

PS:确定是十进制值还是我错了?

您引用了 String#ord 并且在这里您在 Integer 上调用了 #ord - 这个值不是十进制,也不是字符串,而是整数。

Integer#ord docs:

ord → self

Returns the int itself.

97.ord #=> 97 This method is intended for compatibility to character literals in Ruby 1.9.