1个温柔钟 发表于 2020-10-14 20:49:35

C语言逻辑运算

本帖最后由 1个温柔钟 于 2020-10-16 21:18 编辑

还是不明白为什么不是0
0or0 不是已经=0不看后面的or4了吗

乔一 发表于 2020-10-14 20:49:36

概述一下:and前面如果是0,则不用看后面,直接判断为0;and前面如果不为0,则需要判断后面,后面为0则语句为false,后面不为0,则为后面的语句(比如3 and 4 ,则为4);
or前面如果是0,则需要判断后面,后面为0则语句为false,后面不为0,则为后面的语句(比如0 or 3 = 3);or前面如果不为0,则无需判断后面,直接下结论(比如:3 or 4 = 3)
必须明确,0为false,不为0全都是true

1个温柔钟 发表于 2020-10-14 20:50:52

本帖最后由 1个温柔钟 于 2020-10-16 21:18 编辑

这个是python里的课后习题

昨非 发表于 2020-10-14 21:02:08

1个温柔钟 发表于 2020-10-14 20:50
说错了 这个是python里的课后习题

乐乐学编程 发表于 2020-10-14 21:46:12

逻辑关系应该不分是C还是python吧?

2269099035 发表于 2020-10-17 17:23:07

and前面是0,不看后面,or好像没这个说法。

405794672 发表于 2020-10-17 18:46:16

我可能记错了。我映象中,not应该是最后算的。不过这上面说先算,那就先算。
首先,是二进制来and or的。那么上式是这么写的:
0 or 0 or (11 and 100) or (101 and 110) or (111 and 1000 and 1001)

0 or 0 or (000) or (100) or (0000)

0 or 0 or 0 or 100 or 0
=100即4

405794672 发表于 2020-10-17 18:55:05

你题目叫C语言,问题内容是python
python搞什么短路逻辑,真是够了
那么推导就有变:

0 or 0 or 4(这里并没有进行与操作,而是看两个值是否符合非0,对就返回当前这个值)or (101 and 110) or (111 and 1000 and 1001)

0 or 0 or 4 or (110) or (1001)

0 or 0 or 4 or 6 or 9

到4那,就符合为真的条件了,它就不管后面了,直接返回4

永恒的蓝色梦想 发表于 2020-10-19 23:10:14

405794672 发表于 2020-10-17 18:55
你题目叫C语言,问题内容是python
python搞什么短路逻辑,真是够了
那么推导就有变:


主流语言都有短路逻辑的~

乐乐学编程 发表于 2020-10-19 23:34:14

1个温柔钟 发表于 2020-10-14 20:50
这个是python里的课后习题

这是C/C++的论坛哟~~
页: [1]
查看完整版本: C语言逻辑运算