【发布时间】:2019-04-09 01:44:40
【问题描述】:
我正在练习所有位的逻辑门实现,然后我开始实现 NOR,但我不知道为什么使用“~”运算符会给出负值。当我使用“!”时,它确实给出了正确的结果操作员。我无法找到我所做的错误背后的逻辑。
我通读了 C++ 中的运算符,并清楚地提到了使用“~”运算符和“!”来稍微反转一下。逻辑运算
void NOR(vector<string>& input){ // input is string of vectors with values 0 0, 0 1, 1 0, 1 1
cout<<"---------------------------------"<<endl;
for(auto& i : input){
cout<<"NOR of "<<i[0]<<" "<<i[1];
cout<<" is "<<~((i[0]-'0') | (i[1]-'0'))<<endl;
}
cout<<"---------------------------------"<<endl;
}
我得到的结果是
NOR of 0 0 is -1
NOR of 1 0 is -2
NOR of 0 1 is -2
NOR of 1 1 is -2
【问题讨论】:
-
C++ 的类型为
bool用于布尔值。!是一个逻辑运算符。使用那些。0是一个整数。~不是逻辑运算符。~0没有做你想做的事。
标签: c++