64

C 语言表真/假

我听说过一个表 true false for C 语言 for and && or || 是一种数学,他们说如果 true+true=true 和 false+true=false

我对此有点困惑,我试图做研究,但找不到任何桌子

我只想用这张表做笔记,因为我会用 C 语言做更多的事情

如果有人能把我带到他们解释更多的网站或资源


我已经编辑了我的原始问题,以使其成为我自己研究的笔记。感谢@thiton 提供了很好的参考资料,其余的则提供了很棒的答案/资源。

逻辑与 (&&)

false && false: false

false && true: false

true && false: false

true && true: true

逻辑或 (||)

false || false: false

false || true: true

true || false: true

true || true: true

逻辑非 (!)

!false: true

!true: false

4

5 回答 5

18

您可能指的是布尔运算符的真值表,它显示通常的布尔运算(&&、||)的结果。该表不是特定于语言的,但可以在此处找到,例如。

于 2011-09-28T13:21:45.590 回答
8

您正在考虑Boolean algebra

于 2011-09-28T13:21:04.373 回答
6

真值可以使用布尔代数来描述。文章还包含and和的表格or。这应该可以帮助您入门或变得更加困惑。

于 2011-09-28T13:22:58.337 回答
5

我认为您要求布尔代数,它描述了对布尔变量执行的各种操作的输出。只要看看维基百科上的文章。

于 2011-09-28T13:21:23.263 回答
4

我想补充一下已经很好的答案:

符号“+”、“*”和“-”有时在一些较旧的教科书中用作 OR、∨ 和 AND、∧ 和 NOT,布尔代数中的逻辑运算符的简写。在 C/C++ 中,我们当然使用“and”、“&&”和“or”、“||” 并不是”,”!”。

注意: “true + true”在 C/C++ 中通过 true 和 false 的内部表示为 1 和 0 计算为 2,并且隐式转换为 int

int main ()
{
  std::cout <<  "true - true = " << true - true << std::endl;
// This can be used as signum function:
// "(x > 0) - (x < 0)" evaluates to +1 or -1 for numbers.
  std::cout <<  "true - false = " << true - false << std::endl;
  std::cout <<  "false - true = " << false - true << std::endl;
  std::cout <<  "false - false = " << false - false << std::endl << std::endl;

  std::cout <<  "true + true = " << true + true << std::endl;
  std::cout <<  "true + false = " << true + false << std::endl;
  std::cout <<  "false + true = " << false + true << std::endl;
  std::cout <<  "false + false = " << false + false << std::endl << std::endl;

  std::cout <<  "true * true = " << true * true << std::endl;
  std::cout <<  "true * false = " << true * false << std::endl;
  std::cout <<  "false * true = " << false * true << std::endl;
  std::cout <<  "false * false = " << false * false << std::endl << std::endl;

  std::cout <<  "true / true = " << true / true << std::endl;
  //  std::cout <<  true / false << std::endl; ///-Wdiv-by-zero
  std::cout <<  "false / true = " << false / true << std::endl << std::endl;
  //  std::cout <<  false / false << std::endl << std::endl; ///-Wdiv-by-zero

  std::cout <<  "(true || true) = " << (true || true) << std::endl;
  std::cout <<  "(true || false) = " << (true || false) << std::endl;
  std::cout <<  "(false || true) = " << (false || true) << std::endl;
  std::cout <<  "(false || false) = " << (false || false) << std::endl << std::endl;

  std::cout <<  "(true && true) = " << (true && true) << std::endl;
  std::cout <<  "(true && false) = " << (true && false) << std::endl;
  std::cout <<  "(false && true) = " << (false && true) << std::endl;
  std::cout <<  "(false && false) = " << (false && false) << std::endl << std::endl;

}

产量:

true - true = 0
true - false = 1
false - true = -1
false - false = 0

true + true = 2
true + false = 1
false + true = 1
false + false = 0

true * true = 1
true * false = 0
false * true = 0
false * false = 0

true / true = 1
false / true = 0

(true || true) = 1
(true || false) = 1
(false || true) = 1
(false || false) = 0

(true && true) = 1
(true && false) = 0
(false && true) = 0
(false && false) = 0
于 2018-10-02T11:47:27.820 回答