回答
the_number.to_s(2).split('').map { |x| x.to_i }
#转换为数字的二进制数组
解释为什么这是正确的答案。如果OP也从中学习,提供正确的答案会有更多的帮助。 – 2013-02-24 18:10:33
我明白了这一点。可以将字符串映射到字符串中,然后对每个字符将其转换为int。 – 2013-02-24 19:34:39
@BrianA你的意思是the_number.to_s(2).to_i? – 2013-02-25 01:04:44
简单的整数在几乎所有主要的编程语言(包括Ruby)中都以二进制形式存储。所以,你可以做的整数自己的位操作:
>> 6 | 5 # bitwise or
=> 7
>> 6 & 5 # bitwise and
=> 4
>> 6^5 # bitwise xor
=> 3
>> 6 >> 2 # right shift
=> 1
>> 6 << 2 # left shift
=> 24
(编辑:这似乎是我1000年日答案。)
*一切*都是二进制的。唯一的区别在于文字表示。在计算机中,不存在十进制或十六进制数字。只有二进制。 – Linuxios 2013-02-24 17:46:20
好吧,有一些库或语言具有真正的“十进制”类型,实际上可能会使用不同的内部表示(通常是为了避免与传统的浮点表示相关的问题)。然而,普通的“整数”类型在内部几乎总是二进制的。 – nneonneo 2013-02-24 17:50:58
(是的,我意识到任何表示都可以归结为最低级别的二进制;) – nneonneo 2013-02-24 17:51:58