使用 Ruby,在哪里对 Fixnum 或 Bignum 使用 NOT、AND、OR、XOR 运算?
只是想知道是否有人有任何现实世界的例子,或者知道什么时候可以使用 NOT、AND、OR、XOR、<<、>> Ruby 中的运算符。
我已经编程 4 年了,但从未遇到过使用其中任何一个的需要,想知道实际用法有多常见&如果这是我应该完全理解的事情。
谢谢, -J
Just wondering if anyone has any realworld examples or know when you might use the NOT, AND, OR, XOR, <<, >> operators in Ruby.
I've been programming for 4 years and never come across the need to use any of these, wondering how common actual usage is & if its something I should fully understand.
Thanks,
-J
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在 另一个问题的答案,我被迫做一些小改动来解决
String#unpack
/Array# 中缺少的功能打包 API 对。它使用左移 (
<<
) 和按位或 (|
)。In an answer to another question, I was forced to do some bit-twiddling to work around a missing feature in the
String#unpack
/Array#pack
pair of APIs. It uses left-shift (<<
) and bitwise-or (|
).xor
(又名^
)、<<
和>>
更常用于较低版本级编程。 AC 程序员将非常熟悉它们的作用。我目前正在用 Ruby 编写一个模拟器,并且经常在 6502 核心中使用<<
和>>
,因为它的字大小为 1 字节但是2字节的电脑。例如,您需要进行位移来将 PC 保存到堆栈中。not
、and
和or
是!
、&&
的变体、 和||
分别。它们的工作原理相同,但与周围的变量有“更松散的绑定”。它们的用途(至少在实践中)是允许用更少的括号编写表达式。我相信 Rails 实际上完全禁止在自己的代码库中使用这些运算符,因为对它们的工作方式存在误解。xor
(aka^
),<<
, and>>
are more often used in lower-level programming. A C programmer will be intimately familiar with what these do. I'm writing an emulator in Ruby currently and use<<
and>>
often in the 6502 core due to things like it having a 1 byte word size but 2 byte pc. You need to do bit shifting to save the pc onto the stack, for example.not
,and
, andor
are variations of!
,&&
, and||
, respectively. They work the same, but have a 'looser binding' to the variables around them. Their use (at least in practice) is to allow writing of expressions with fewer parens. I believe Rails actually forbids the use of these operators completely within its own codebase due to misunderstandings about how they work.