对两个 std::bitset 进行异或运算时会出现错误结果

问题描述 投票:0回答:1
#include <bitset>
#include <iostream>

int main() {
    std::bitset<8> a = 10101010;
    std::bitset<8> b = 11111111;

    std::cout << (a ^ b);
}

运行以下代码时,结果为:11010101

预期输出为:01010101

我做错了什么吗?

c++ xor bitset
1个回答
0
投票

您使用

a
s 的值初始化
b
int

为了使用二进制值,您需要

0b
前缀:

#include <bitset>
#include <iostream>

int main() {
    std::bitset<8> a = 0b10101010;
    std::bitset<8> b = 0b11111111;

    std::cout << (a ^ b);
}
© www.soinside.com 2019 - 2024. All rights reserved.