加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在ruby中定义二进制数的语法是什么?

发布时间:2020-12-17 03:49:05 所属栏目:百科 来源:网络整理
导读:一些终端输出值得一千字,所以让我们开始: [10] pry(main) 1_000= 1000 是的,我们可以用ruby中的可读方式定义数千个,我知道这一切都很好.嘿,我想知道如果我尝试用零填充垫会发生什么? [9] pry(main) 001_000= 512 嗯,这很奇怪,它不是二进制,因为那将是8小时
一些终端输出值得一千字,所以让我们开始:

[10] pry(main)> 1_000
=> 1000

是的,我们可以用ruby中的可读方式定义数千个,我知道这一切都很好.嘿,我想知道如果我尝试用零填充垫会发生什么?

[9] pry(main)> 001_000
=> 512

嗯,这很奇怪,它不是二进制,因为那将是8小时……

[20] pry(main)> 01_0
=> 8

所以那是8 …好吧,2 ** 3是8,2 **(3 * 3)是512我打赌01_00是2 ** 6 == 64

[24] pry(main)> 01_00
=> 64

嗯……数字语法中的下划线没有什么特别之处,只是为了让它看起来不错:

[23] pry(main)> 0100
=> 64

那么这些数字被称为什么(它不是直接的二进制……我正在考虑它们应该是什么,但不断提出一个空白).另外为什么它们如此重要?任何人都可以发布描述它们的文档的链接吗?

解决方法

如果数字前缀为0,则为八进制表示.

同样,如果数字以0x或0X为前缀,则为十六进制表示.

0x10
# => 16
0x100
# => 256

顺便说一句,您可以使用% operator或sprintf将数字转换为八进制,十六进制,二进制表示:

'%o' % 512
=> "1000"

'%x' % 256
# => "100"

'%x' % 512
# => "200"

'%b' % 3
# => "11"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读