你有没有在实际的编程项目中使用过bit shifting?大多数(如果不是所有的)高级语言都有移位运算符,但是什么时候你真正需要使用它们呢?
发布于 2009-02-06 15:30:47
我仍然为硬件中没有浮点支持的系统编写代码。在这些系统中,几乎所有的算术运算都需要进行位移位。
此外,您还需要移位来生成散列。多项式运算(CRC、里德-所罗门码是主流应用)或者也使用移位。
然而,使用移位只是因为它们很方便,并且准确地表达了作者的意图。如果你愿意,你可以用乘法来模拟所有的位移位,但是这样写起来会更难,可读性更差,有时还会更慢。
编译器检测乘法可以简化为移位的情况。
发布于 2009-02-06 15:12:47
我一直在使用它们的一个地方是在跨平台应用程序中调换整数的字节顺序时。在处理2D图形时,它们有时也会派上用场(以及其他位操作操作符)。
发布于 2009-02-06 15:13:02
我已经使用过它们几次,但几乎总是用于解析二进制文件格式。
https://stackoverflow.com/questions/520625
复制相似问题