关于屏蔽位的澄清

发布于 2024-08-21 09:51:30 字数 279 浏览 4 评论 0原文

我有一个关于屏蔽位的快速问题。如果我想打开两个 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

夏九 2024-08-28 09:51:30

要打开 (1),您可以在要打开的位置使用 OR 运算符,并在要打开的位置添加 1,因为无论流中的原始值是什么,结果都将是 ON

   00000000 // whatever the values in the input
OR 00000001 // 'OR' turns on the last position in the stream
   --------- 
   00000001

要关闭 (0),您可以将在要关闭的位置使用带有 0 的 AND 运算符,因为无论输入流中的原始值是什么,结果都将是 OFF。

    11111111 // whatever the values here
AND 11111110 // turns off the last position in the stream
    ---------
    11111110

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

   00000000 // whatever the values in the input
OR 00000001 // 'OR' turns on the last position in the stream
   --------- 
   00000001

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.

    11111111 // whatever the values here
AND 11111110 // turns off the last position in the stream
    ---------
    11111110
情独悲 2024-08-28 09:51:30

其他人,如果我错了,请纠正我:

要打开 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 using 00001000.

To turn OFF the 4th bith in an 8bit stream you would compare the 8bit stream using the AND logic using 11110111.

To toggle the bit you would use 11111111 using the XOR logic.

满意归宿 2024-08-28 09:51:30

我不确定在这种情况下你所说的“流”是什么意思。

在大多数语言中,您必须进行赋值和二元运算。

也就是说,您通常会得到类似的内容

foo = get_byte() // Call some function to get the original value of foo
foo = foo AND 11110111 // Replace foo with the result of the AND, which
                       // in this case will turn off the 4th bit, and leave
                       // the other bits unchanged

最后一行将 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

foo = get_byte() // Call some function to get the original value of foo
foo = foo AND 11110111 // Replace foo with the result of the AND, which
                       // in this case will turn off the 4th bit, and leave
                       // the other bits unchanged

The last line replaces the contents of foo with the results of the binary operation

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文