c语言或非,C语言或非符号

kodinid 14 0

大家好,今天小编关注到一个比较意思的话题,就是关于c语言或非的问题,于是小编就整理了4个相关介绍c语言或非的解答,让我们一起看看吧。

  1. 最简与或式怎么转化为与非与非式?
  2. 裸机下只能执行低级语言不能执行高级语言对错?
  3. c语言中,‖什么意思?
  4. 为什么C语言中计算机认为0是假的,其他数都是真的?

最简与或式怎么转化为与非与非式?

先化简成最简与或式,再用反演律。

F=AB'+A'B(与或形式)→2次取反→F=((AB'+A'B)')' 这是与非—与非形式。

c语言或非,C语言或非符号-第1张图片-安济编程网
图片来源网络,侵删)

F= ((AB'+A'B)')' =((A'+B)(A+B'))' 这是或-与非。

其实记住“与”就是相乘,“或”就是相加,“非”就是取反,“与或”因为与在前面,所以先“与”再“或”,其他以此类推。

逻辑运算符将关系表达式或逻辑量连接起来的有意义的式子称为逻辑表达式。逻辑表达式的值是一个逻辑值,即“true”或“false”。C语言编译系统在给出逻辑运算结果时,以数字1表示“真”,以数字0表示“***”,但在判断一个量是否为“真”时,以0表示“***”,以非0表示“真”。

c语言或非,C语言或非符号-第2张图片-安济编程网
(图片来源网络,侵删)

裸机下只能执行低级语言不能执行高级语言对错?

错的。

首先编程语言是编译后才能运行,编译后都是机器码。。。如果认为编译成机器码的语言能运行,就叫做可执行的语言的话。。。所有最终编译成机器码的语言都是可以裸机执行的,比如C/C++,Basic,pascal等等均可。。。。。但java,c#等基于虚拟机的语言则不属于此类,因为没有虚拟机或运行时,该语言编译的结果不能运行。。。

但问题是C/C++定义为了高级语言,所以你这句话是错的,汇编以上都被认为是高级语言,虽然C语言这种非面向对象语言相比之下是很低级的。。。

c语言或非,C语言或非符号-第3张图片-安济编程网
(图片来源网络,侵删)

c语言中,‖什么意思?

c语言中,‖是“逻辑或”操作符。其左右二个表达式中,只要有一个为真,运算结果就是真。

按位与逻辑是不一样的,按位是以二进制处理,而逻辑是来处理逻辑值,逻辑值要么为0,要么为非0 例如 7||0 为真;7&&0为***;7&0为0000,7二进制为0111,0二进制为0000 , 7&9为1 因为9的二进制为1001,7的二进制与9的二进制&后为0001,二进制0001转换十进制为1

为什么C语言中计算机认为0是***的,其他数都是真的?

C是一门高效的计算编程语言。所以,为了编程快捷方便的需要,对逻辑表达式及逻辑非操作符”!”进行了明确的定义,即表达式值为非零时,逻辑值为1,表达式值为0时,逻辑值为0。这就是你所说的计算机认为0是***的,非0是真的(原创问答,违者必究)。

以下分两部分解释:逻辑变量;表达式及逻辑非操作符”!”。

#define FALSE 0

#define TRUE 1

在编程中,不论什么情况,在进行逻辑判断时,不是TRUE,就是FALSE。

也就是说,不论怎么复杂的逻辑关系式,其运算结果要么是TRUE,要么是FALSE。

先看一下权威的MSDN是如何定义逻辑非操作符”!”的,原文截图如下:

重点翻译白话文如下:

操作数d是非零时,!d返回值是0;操作数d是零时,!d返回值是1;其中的操作数d是整数型、浮点型或指针型之一。

很清楚了吧!

举例1:布尔型!,表达式判断

c语言本就没有真***值也没有布尔变量。标准库里没有bool定义。都是自己定义。一般是定义个枚举变量

enum bool {FALSE;TRUE=!FALSE};

如果FALSE=1就是1为***其他为真。

到此,以上就是小编对于c语言或非的问题就介绍到这了,希望介绍关于c语言或非的4点解答对大家有用。

标签: 语言 逻辑 表达式