-6

我刚学C。有人能解释一下他们用的是什么吗?这些运营商。在一个真正的工业案例中......谢谢。

像:

我什么时候需要这些?:

~X 
n = n & 0177
x = x | 1211

请告诉我。

4

1 回答 1

1

这是基本的,因此有许多潜在的应用,但这里有一个具体的工业示例:

假设您要在设备之间发送一堆命令和/或状态信息。为避免浪费带宽(特别是如果您使用较慢的连接类型,例如旧的 9 针串行连接,它仍在工业设备上使用),您可以“打包”和“解包”数据。在双态信号的情况下,这意味着每个字节最多可以保存八个独立的状态。要获取第 6 位的状态,您可以执行以下操作:

status = (dataByte & 0x40) >> 6;

在上面的行中,0x40 是一个位掩码,它导致除位 6 之外的所有位都为零。右移 6 会将结果值 - 0x40 或 0x00 - 转换为 1 或 0。

看看这个简短的部分,了解标准的相关示例: C 中的位操作

于 2013-01-07T02:33:37.307 回答