【问题标题】:Conversion from hex to decimal in ruby红宝石中从十六进制到十进制的转换
【发布时间】:2023-03-03 05:40:28
【问题描述】:

0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFE_FFFFFC2F.ord => 115792089237316195423570985008687907853269984665640564039457584007908834671663

0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFE_FFFFFC2F.to_i => 115792089237316195423570985008687907853269984665640564039457584007908834671663

谁能解释一下为什么这两种方法都返回相同的整数值? 我不确定我是否理解方法 ord...

返回字符串第一个字符的代码点,假设是单字节字符编码"

我找到了,但这里我得到一个十六进制值,我使用该方法然后得到一个十进制值,所以“什么是十六进制?” :D

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

【问题讨论】:

    标签: ruby integer hex ord


    【解决方案1】:

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

    Integer#ord docs:

    ord → self

    返回 int 本身。

    97.ord #=> 97 此方法旨在与 Ruby 1.9 中的字符文字兼容。

    【讨论】:

    • Okey... 所以在我的十六进制上使用方法 ord 后,我仍然得到整数值,对吧?那我怎样才能把它转换成小数呢?
    • 十六进制只是一个整数的表示。您可以将其写为十六进制或二进制或十进制,它仍然是相同的数字。
    • 所以当我进行计算时,如果我使用十六进制 * 十进制并不重要,因为它仍然是整数中的相同数字?我们仍在谈论 ruby​​ 中的数学。
    • @KarolMazurek:如何写下数字 3 并不重要。数字 3 就是数字 3。想一想:数学规则是否因使用手指或使用手指而异?你的脚趾数?
    • @JörgWMittag 你成功了:D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-05
    • 2014-12-31
    • 1970-01-01
    • 1970-01-01
    • 2011-02-04
    • 2019-05-10
    相关资源
    最近更新 更多