Ruby 将int转换为二进制,然后对其执行按位操作

Ruby 将int转换为二进制,然后对其执行按位操作,ruby,Ruby,我正在尝试将int转换为二进制,然后对二进制执行逐位操作 我目前的方法是取int,调用到它上面的s(2),然后剩下一个二进制字符串 关于我应该做什么有什么建议吗?在几乎所有主要编程语言(包括Ruby)中,简单整数都以二进制形式存储。因此,您可以对整数本身执行逐位运算: >> 6 | 5 # bitwise or => 7 >> 6 & 5 # bitwise and => 4 >> 6 ^ 5 # bitwise xor => 3 &

我正在尝试将int转换为二进制,然后对二进制执行逐位操作

我目前的方法是取int,调用
到它上面的s(2)
,然后剩下一个二进制字符串


关于我应该做什么有什么建议吗?

在几乎所有主要编程语言(包括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
>6 | 5#位或
=> 7
>>6和5#按位和
=> 4
>>6^5#位异或
=> 3
>>6>>2#右移
=> 1
>> 6  24

(编辑:这似乎是我的第1000个答案。)

在几乎所有主要编程语言(包括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
>6 | 5#位或
=> 7
>>6和5#按位和
=> 4
>>6^5#位异或
=> 3
>>6>>2#右移
=> 1
>> 6  24

(编辑:这似乎是我的第1000个答案。)

数字。到s(2)。拆分(“”)。映射{x{x}到i}
将数字转换为二进制数组

到s(2)。拆分(“”)。映射{x{x}到i}
将数字转换为二进制数组

一切都是二进制的。唯一的区别在于文本表达。在计算机中,没有十进制数或十六进制数。只有二进制。有许多库或语言具有真正的“十进制”类型,实际上可能使用不同的内部表示(通常是为了避免与传统浮点表示相关的问题)。然而,普通的“整数”类型在内部几乎总是二进制的(是的,我意识到任何表示都可以归结为最低级别的二进制;)一切都是二进制的。唯一的区别在于文本表达。在计算机中,没有十进制数或十六进制数。只有二进制。有许多库或语言具有真正的“十进制”类型,实际上可能使用不同的内部表示(通常是为了避免与传统浮点表示相关的问题)。然而,简单的“整数”类型在内部几乎总是二进制的(是的,我意识到任何表示都可以归结为最低级别的二进制;)解释为什么这是正确的答案。如果OP也能从中吸取教训,那么提供一个正确的答案会帮助更多。我明白了这一点。可以将拆分的字符串映射到字符串中,然后将每个字符转换为整数。@BrianA你是指_数。to_s(2)。to_i?解释为什么这是正确答案。如果OP也能从中吸取教训,那么提供一个正确的答案会帮助更多。我明白了这一点。可以将拆分的字符串映射到字符串中,然后将每个字符转换为整数。@BrianA您是指_编号。to_s(2)。to_i?