关闭 。这个问题需要更加集中。它目前不接受答案。
想改进这个问题? 更新问题,使其仅通过编辑此帖子专注于一个问题。
5年前关闭。
改进这个问题
以下位运算符的一些实际用例是什么?
位域(标志) 它们是表示状态由几个“是或否”属性定义的事物的最有效方式。ACL 就是一个很好的例子。如果您有 4 个离散权限(读取、写入、执行、更改策略),最好将其存储在 1 个字节中而不是浪费 4 个。这些可以映射到多种语言的枚举类型以增加便利性。
通过端口/套接字进行的通信 总是涉及校验和、奇偶校验、停止位、流控制算法等,这些通常取决于单个字节的逻辑值而不是数值,因为介质可能只能在一次。
压缩、加密 这两者都严重依赖于按位算法。以deflate算法为例——一切都以位为单位,而不是字节。
有限状态机 我说的主要是嵌入在某些硬件中的那种,尽管它们也可以在软件中找到。这些本质上是组合的——它们可能真的被“编译”成一堆逻辑门,所以它们必须表示为AND、OR、NOT等。
AND
OR
NOT
图形 这里几乎没有足够的空间来介绍这些运算符在图形编程中使用的每个领域。 XOR(或^)在这里特别有趣,因为第二次应用相同的输入将撤消第一次。较旧的 GUI 过去常常依赖它来进行选择突出显示和其他覆盖,以消除对代价高昂的重绘的需要。它们在慢速图形协议(即远程桌面)中仍然有用。
XOR
^
这些只是我想出的前几个例子——这并不是一个详尽的清单。