【问题标题】:Finding the differences between two 8 bit binary states找出两个 8 位二进制状态之间的差异
【发布时间】:2020-12-03 05:53:48
【问题描述】:

我不确定我想要实现的技术术语是什么,但我需要的是两个二进制数之间的差异。

基本上,我正在工作中构建一个测试夹具,并且我计划将状态存储在 PISO 移位寄存器中,当我从 SR 读取时,我想将它与另一个预先确定的 8 位数字进行比较,这意味着如果我从 SR 读取的内容与预先确定的二进制数相同,那么我在该特定实例中及时具有正确的状态。

但是,如果状态不匹配,那么我想知道“差异”是什么。所以说:

10011000 -> 预先确定 10000100 -> 从 SR 读取

那么,差异将是

00011100

不是

00001100,也就是两者的减法,

是否有 C++ 函数可以满足我的需求?

谢谢

【问题讨论】:

  • 我认为您需要^ 运算符(也称为按位异或)
  • 这个操作符是否单独对位进行操作?抱歉,我没有带电脑
  • 我很确定这就是您所需要的,所以我将其发布为答案。是的,每个位都是单独异或(与差异相同)(因此名称为 bitwise xor)
  • @BrendonCheung 看来您已经问了很多问题,但很少接受您得到的任何答案。也许您应该仔细检查您的问题并接受可接受的答案,如果您不理解答案,请要求澄清?

标签: c++ math binary


【解决方案1】:

operator^ 正是这样做的。

例如:

const unsigned char state         = 0b10011000;
const unsigned char expected      = 0b10000100;
static_assert((state ^ expected) == 0b00011100);

【讨论】:

    猜你喜欢
    • 2021-11-04
    • 2019-06-03
    • 2021-12-05
    • 1970-01-01
    • 2016-07-21
    • 1970-01-01
    • 1970-01-01
    • 2014-11-03
    • 1970-01-01
    相关资源
    最近更新 更多