Ruby 鲁比:为什么这个二进制文件中有字母?

Ruby 鲁比:为什么这个二进制文件中有字母?,ruby,binary,Ruby,Binary,我试图理解一些代码示例。我有这样的表达方式 exit_status |= 0b0010 exit_status |= 0b0001 我到这里来翻译二进制文件: 然后得到0b0010是2和0b0001是1 我知道0010是2而0001是1,我的问题是。。。为什么有一个类似于0b的前缀,它是什么意思或者它是如何工作的?否则这个数字不会被解释为基数2 更多信息: 0b:前缀二进制数;示例:0b011(3位小数) 0:前缀八进制数;示例:010(8位小数) 0x:前缀十六进制数;示例:0x10(16位

我试图理解一些代码示例。我有这样的表达方式

exit_status |= 0b0010
exit_status |= 0b0001
我到这里来翻译二进制文件:

然后得到
0b0010
2
0b0001
1

我知道
0010
2
0001
是1,我的问题是。。。为什么有一个类似于
0b
的前缀,它是什么意思或者它是如何工作的?

否则这个数字不会被解释为基数2

更多信息:

  • 0b:前缀二进制数;示例:0b011(3位小数)
  • 0:前缀八进制数;示例:010(8位小数)
  • 0x:前缀十六进制数;示例:0x10(16位小数)

0b
是表示将以下数字解释为二进制数字的前缀,就像
0x
前缀表示以下数字为十六进制,例如,
0xffff
。有关更多信息,请参见。

0b
是一个文本,以二进制表示形式将值指定为数字。这就像
0xFF4ABD
中的
0x
将其指定为十六进制数一样

这是因为数字可以在多个系统中表示。关于数字的表示方式,存在多种系统,如十进制数字系统
1234
,或罗马数字系统
MCXIVII
。二进制数和十六进制数只是这些系统中的两个


注意:如果要键入
1234
,Ruby会将其解释为十进制数。例如,如果要将其键入为
01234
,如果要将多个数字统一格式化(所有数字长度相同),则会将其解释为八进制数字

它是用来表示基地的。不同的数字可以表示不同的数字。10代表10在底座10中,2在底座2中,16在底座16中。