使用 Ruby,在哪里对 Fixnum 或 Bignum 使用 NOT、AND、OR、XOR 运算?

发布于 2024-09-01 08:31:25 字数 168 浏览 9 评论 0原文

只是想知道是否有人有任何现实世界的例子,或者知道什么时候可以使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

森罗 2024-09-08 08:31:26

另一个问题的答案,我被迫做一些小改动来解决 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 (|).

冰雪之触 2024-09-08 08:31:25

xor(又名 ^)、<<>> 更常用于较低版本级编程。 AC 程序员将非常熟悉它们的作用。我目前正在用 Ruby 编写一个模拟器,并且经常在 6502 核心中使用 <<>>,因为它的字大小为 1 字节但是2字节的电脑。例如,您需要进行位移来将 PC 保存到堆栈中。

notandor!&& 的变体、 和 || 分别。它们的工作原理相同,但与周围的变量有“更松散的绑定”。它们的用途(至少在实践中)是允许用更少的括号编写表达式。我相信 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, and or 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文