c-&&逻辑和||的是非 逻辑标签

C语言表真/假

我听说过&&或||的C语言表为true false。 是一种数学,他们说如果true + true = true和false + true = false

我对此感到困惑,我尝试进行研究,但找不到任何表格

我只希望有这张桌子做笔记,因为我将用C语言做更多的事情

如果有人可以将我带到他们对此有更多解释的网站或资源


我已经对原始问题进行了编辑,以使其成为我自己学习的笔记。 感谢@thiton提供了出色的参考,其余的都为您提供了出色的答案/资源。

!true: false

!true: false

!true: false

!true: false

!true: false

逻辑或(||)

!true: false

!true: false

!true: false

!true: false

逻辑非(!)

!true: false

!true: false

Ali asked 2020-02-29T18:10:46Z
5个解决方案
13 votes

您可能会为布尔运算符指定一个真值表,该表显示常规布尔运算(&&,||)的结果。 该表不是特定于语言的,但可以在例如 这里。

thiton answered 2020-02-29T18:24:02Z
6 votes

您正在考虑布尔代数。

John Bode answered 2020-02-29T18:24:22Z
5 votes

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

pmr answered 2020-02-29T18:24:42Z
4 votes

我想您要求使用布尔代数,该代数描述对布尔变量执行的各种运算的输出。 只需查看Wikipedia上的文章即可。

matekm answered 2020-02-29T18:25:02Z
0 votes

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

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

请注意:在C / C ++中,“ true + true”通过内部将true和false表示为1和0,并将隐式转换为int的结果为2!

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
M. D. H. answered 2020-02-29T18:25:36Z
translate from https://stackoverflow.com:/questions/7583853/true-and-false-for-logic-and-logic-table