C++布尔代数
C++ Boolean Algebra
我已经将某个变量声明为布尔值,我希望当我进行一些布尔加法时C++会知道该怎么做,但它并没有按照我想要的方式发生。我如何让它工作。
#include<iostream>
using namespace std;
int main()
{
bool x,j;
x=0;
j=1;
for(int i=0;i<10;i++)
{
cout << x;
x=x+j;
}
return 0;
}
我得到的输出为
011111111
而我希望得到
0101010101
我希望布尔变量能修改 2。所以如果
x=1 then
x+1 = 0
x+1+1=1
x+1+1+1=0
等等。
我是否将布尔代数与以 2 为底的代数混淆了?
谢谢
bool x,j;
x=x+j;
此语句会自动将x
和j
提升为在添加之前键入int
。 然后赋值以通常的方式转换回bool
:0
变成false
,但任何其他数字,包括2,变成true
。
您可以通过改用^
(xor) 运算符来获取Z_2加法:
x = x^j;
C/C++提供了一系列按位运算符:&
、|
、^
、~
,它们通常适用于布尔值,因为 true 转换为整数 1,false 转换为 0。
但您也可以使用真正的布尔运算符:
-
&&
合相 -
||
析取 -
!=
排他性的或(您认为是添加的内容) -
!
不是
相关文章:
- 一个关于在C++中重载布尔运算符的问题
- 提升精神:解析布尔表达式并简化为规范范式
- 在没有定义返回类型的函数中返回布尔值,并将结果保存在无错误的char编译中-为什么
- 线程之间的布尔停止信号
- 布尔比较运算符是如何在C++中工作的
- 变量定义到C++布尔值转换
- 如何确保在使用基于布尔值的两个方法之一调用方法时避免分支预测错误
- 隐式常量/非常量运算符布尔
- 如何编写一个使用n倍三元条件语句的C++布尔函数
- 如何在 c++ 中让布尔变量返回为 0 或 1 而不是真或假?
- 重载更少,则运算符返回相反的布尔值
- 将布尔变量添加到 int
- 如何在 c++ 中迭代数组中的唯一元素
- 为什么布尔开关语句有编译器警告?
- 将此布尔值传递给此函数的最有效方法是什么?
- 如何使布尔变量仅在设置为 true 时才为真?
- 为什么我不能在返回 const 的布尔函数中为类成员变量赋值?C++
- 程序中的布尔函数返回输入的范围无论如何都是无效的
- C++布尔代数
- 了解为什么编译时布尔代数不起作用