关于屏蔽位的澄清
我有一个关于屏蔽位的快速问题。如果我想打开两个 8 位流,我是否
对这两个流使用 AND 逻辑:
10101010
AND 01101001
________
00101000
或者我是否实际上更改流中的一位来打开这些位?我想我的问题是,当我打开(使用 AND
)或关闭(使用 OR
)时,我实际上会更改任何位,还是只是比较这两个位使用AND/OR
逻辑?
I have a quick question about masking bits. If I want to turn two 8 bit streams on, do I
use the AND
logic against the two:
10101010
AND 01101001
________
00101000
or do I actually change one of the bits in the stream to turn the bits on? I guess my question is when I'm turning on (using AND
) or turning off (using OR
) do I actually change any of the bits, or just comparing the two using the AND/OR
logic?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
要打开 (1),您可以在要打开的位置使用 OR 运算符,并在要打开的位置添加 1,因为无论流中的原始值是什么,结果都将是 ON
要关闭 (0),您可以将在要关闭的位置使用带有 0 的 AND 运算符,因为无论输入流中的原始值是什么,结果都将是 OFF。
To turn ON (1), you would use the OR operator with a 1 in the position you want to turn ON, because no matter what the original value in the stream is, the result would be ON
To turn OFF (0), you would use the AND operator with a 0 in the position you want to turn OFF, because no matter what the original value in the input stream, the result would be OFF.
其他人,如果我错了,请纠正我:
要打开 8 位流中的第 4 位,您可以使用
00001000
使用OR
逻辑来比较 8bit 流。要关闭 8 位流中的第 4 位,您可以使用
11110111
使用AND
逻辑来比较 8 位流。要切换该位,您可以使用
11111111
并使用XOR
逻辑。Others, correct me if I am wrong:
To turn ON the 4th bit in an 8bit stream you would compare the 8bit stream using the
OR
logic using00001000
.To turn OFF the 4th bith in an 8bit stream you would compare the 8bit stream using the
AND
logic using11110111
.To toggle the bit you would use
11111111
using theXOR
logic.我不确定在这种情况下你所说的“流”是什么意思。
在大多数语言中,您必须进行赋值和二元运算。
也就是说,您通常会得到类似的内容
最后一行将 foo 的内容替换为二进制运算的结果
I'm not sure what you mean by 'streams' in this case.
In most languages you are going to have to have an assignment as well as the binary operation.
That is you would typically have something like
The last line replaces the contents of foo with the results of the binary operation