使用Ruby,在哪里对Fixnum或Bignum使用NOT,AND,OR,XOR操作?

时间:2010-05-14 03:59:54

标签: ruby operators bignum fixnum

只是想知道是否有人有任何真实世界的例子,或者知道何时可以使用NOT,AND,OR,XOR,<<,>> Ruby中的运算符。

我已经编程了4年,从来没有遇到过使用其中任何一种的需要,想知道实际使用情况是多么常见。如果它是我应该完全理解的东西。

谢谢, -J

2 个答案:

答案 0 :(得分:1)

xor(又名^),<<>>更常用于较低级别的编程。 C程序员将非常熟悉这些操作。我目前正在Ruby中编写一个模拟器,并且经常在6502内核中使用<<>>,因为它具有1字节字大小但是2字节pc。例如,您需要进行位移以将pc保存到堆栈中。

notandor分别是!&&||的变体。它们的工作方式相同,但对它们周围的变量进行“更松散的绑定”。它们的使用(至少在实践中)是允许编写具有较少parens的表达式。我相信Rails实际上禁止在他们自己的代码库中完全使用这些运算符,因为他们对它们的工作方式存在误解。

答案 1 :(得分:1)

an answer to another question中,我被迫做了一些小事,以解决String#unpack / Array#pack对API中缺少的功能。它使用左移(<<)和按位 - 或(|)。