精华内容
下载资源
问答
  • 逻辑表达式

    千次阅读 2021-07-25 02:37:41
    逻辑表达式的值是一个逻辑值,即“true”或“false”。C语言编译系统在给出逻辑运算结果时,以数字1表示“真”,以数字0表示“假”,但在判断一个量是否为“真”时,以0表示“假”,以非0表示“真”。中文名逻辑...

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

    中文名

    逻辑表达式

    外文名

    logic expression

    学    科

    数理科学类    型

    数学术语

    应用时间

    20世纪30年代

    逻辑运算

    又称布尔运算

    逻辑表达式逻辑运算

    编辑

    语音

    逻辑运算,又称布尔运算。布尔用数学方法研究逻辑问题,成功地建立了逻辑演算。他用等式表示判断,把推理看作等式的变换。这种变换的有效性不依赖人们对符号的解释,只依赖于符号的组合规律 。这一逻辑理论人们常称它为布尔代数。20世纪30年代,逻辑代数在电路系统上获得应用,随后,由于电子技术与计算机的发展,出现各种复杂的大系统,它们的变换规律也遵守布尔所揭示的规律。

    逻辑表达式简介

    编辑

    语音

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

    可以将逻辑表达式的运算结果(0或1)赋给整型变量或字符型变量。

    c语言中,等于是“==”,不等于是“!=”。

    Pascal语言中,等于是“=”,不等于是“<>"

    逻辑表达式浮点数的注意

    编辑

    语音

    由于浮点数在计算机中不能非常准确地表示,所以,判断两个浮点数是否相同时,通常不使用关系运算符“等于”(==),而是利用区间判断方法来实现。为了判断x是否等于5.003,可利用如下逻辑表达式:

    x>5.002 && x<5.004

    当此逻辑表达式为“真”时,就可以认为x等于5.003

    逻辑及性质保真性:所有变量的真值皆为“真”的命题在逻辑或运算后的结果为真。保假性:所有变量的真值皆为“假”的命题在逻辑或运算后的结果为假。

    逻辑表达式相关改进

    编辑

    语音

    在通常的数字逻辑电路的设计、教学中,用布尔代数法进行逻辑表达式的运算及简化时人们一般需要掌握布尔代数的基本定律、结合律、交换律、分配律、互补律、0一1律、吸收律、还原律、狄摩根定理、分解定理等;以及一些规则,例如代入规则、反演规则、对偶规则及一些常用的恒等式等.简化时还可能要用到并项法、吸收法、消去法及配项法、卡诺图等等技巧.总之能否得到例如最简的逻辑表达式,全凭经验及逻辑运算的熟练程度.特别是在进行与或表达式和与异表达式之间的转换与简化时通常无一般规律可循,较不易把握。利用卡诺图虽然对于变量较少晰U如不多于4个变量的情况)的与一或、或与表达的简化较有效,但对于较多变量以及与或表达式和与异表达式之间的转换与简化似乎也有点不知所措。

    张文龙在设计实践和教学中发现,如果使用推广的吸收律、广义还原律和分解定理等有关的公式,将能更简便地简化逻辑表达式,往往使得似乎无从下手的逻辑简化问题能找到一种有效的出路。[1]

    广义吸收律:

    802a3af77cf6e1dbd50eee246749e1ae.svg

    330f815866a5dcecd5ecfe64f99f0cf5.svg

    逻辑表达式常用逻辑门实用知识

    编辑

    语音

    (1)与门

    与门(英语:AND gate)又称“与电路”、逻辑“积”、逻辑“与”电路。是执行“与”运算的基本逻辑门电路。有多个输入端,一个输出端。当所有的输入同时为高电平(逻辑1)时,输出才为高电平,否则输出为低电平(逻辑0)。

    逻辑表达式:F=AB.

    (2)或门

    或门(OR gate),又称或电路、逻辑和电路。如果几个条件中,只要有一个条件得到满足,某事件就会发生,这种关系叫做“或”逻辑关系。具有“或”逻辑关系的电路叫做或门。或门有多个输入端,一个输出端,只要输入中有一个为高电平时(逻辑“1”),输出就为高电平(逻辑“1”);只有当所有的输入全为低电平(逻辑“0”)时,输出才为低电平(逻辑“0”)。

    逻辑表达式:F=A+B.

    (3)非门

    非门(英文:NOT gate)又称非电路、反相器、倒相器、逻辑否定电路,简称非门,,是逻辑电路的基本单元。非门有一个输入和一个输出端。当其输入端为高电平(逻辑1)时输出端为低电平(逻辑0),当其输入端为低电平时输出端为高电平。也就是说,输入端和输出端的电平状态总是反相的。非门的逻辑功能相当于逻辑代数中的非,电路功能相当于反相,这种运算亦称非运算。

    逻辑表达式:b9c0d9d00359a36fbd0aec7cf5be15e3.svg

    (4)与非门

    与非门(英语:NAND gate)是数字电路的一种基本逻辑电路。若当输入均为高电平(1),则输出为低电平(0);若输入中至少有一个为低电平(0),则输出为高电平(1)。与非门可以看作是与门和非门的叠加。

    逻辑表达式:146adc03e17425d752cb22d5024a1fc4.svg

    (5)或非门

    或非门(英语:NOR gate)是数字逻辑电路中的基本元件,实现逻辑或非功能。有多个输入端,1个输出端,多输入或非门可由2输入或非门和反相器构成。只有当两个输入A和B为低电平(逻辑0)时输出为高电平(逻辑1)。也可以理解为任意输入为高电平(逻辑1),输出为低电平(逻辑0)。

    逻辑表达式:780402c6e07084ae108d9d94d4b68ba3.svg

    (6)异或门

    异或门 (英语:Exclusive-OR gate,简称XOR gate,又称EOR gate、ExOR gate)是数字逻辑中实现逻辑异或的逻辑门。有多个输入端、1个输出端,多输入异或门可由2输入异或门构成。若两个输入的电平相异,则输出为高电平1;若两个输入的电平相同,则输出为低电平0。亦即,如果两个输入不同,则异或门输出高电平。

    逻辑表达式:a1511077306d06812305711524ffb094.svg

    (7)同或门

    同或门(英语:XNOR gate或equivalence gate)也称为异或非门,是数字逻辑电路的基本单元,有2个输入端、1个输出端。当2个输入端中有且只有一个是低电平(逻辑0)时,输出为低电平。亦即当输入电平相同时,输出为高电平(逻辑1)。[2]

    逻辑表达式:4dcb319c3e11c9c9f1e84db3aed47906.svg

    参考资料

    1.

    张文龙. 逻辑表达式的简化和转换方法的改进[J]. 上海师范大学学报(自然科学版), 2010, 39(1):56-60.

    2.

    John F.Wakerly.数字设计 原理与实践(原书第3版):机械工业出版社,2003

    展开全文
  • 关系表达式和逻辑表达式的值是布尔型:真或假(true or false),即0或1,但c语言没有布尔类型,以0为假,非0即真。逻辑运算又称布尔运算。布尔用数学方法研究逻辑问题,成功地建立了逻辑演算。他用等式表示判断,把...

    c2f742608eade0a205972d70a102cabc.png

    C语言中关系表达式和逻辑表达式的值是什么?

    关系表达式和逻辑表达式的值是布尔型:真或假(true or false),即0或1,但c语言没有布尔类型,以0为假,非0即真。

    逻辑运算又称布尔运算。布尔用数学方法研究逻辑问题,成功地建立了逻辑演算。他用等式表示判断,把推理看作等式的变换。这种变换的有效性不依赖人们对符号的解释,只依赖于符号的组合规律 。这一逻辑理论人们常称它为布尔代数。

    20世纪30年代,逻辑代数在电路系统上获得应用,随后,由于电子技术与计算机的发展,出现各种复杂的大系统,它们的变换规律也遵守布尔所揭示的规律。

    简介

    1、C语言中的逻辑表达式

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

    2、可以将逻辑表达式的运算结果(0或1)赋给整型变量或字符型变量。

    注意

    由于浮点数在计算机中不能非常准确地表示,所以,判断两个浮点数是否相同时,通常不使用关系运算符"等于"(==),而是利用区间判断方法来实现。

    推荐教程: 《c语言》

    展开全文
  • C语言中逻辑表达式与关系表达式的值发布时间:2020-06-18 09:45:57来源:亿速云阅读:...关系表达式和逻辑表达式的值是布尔型:真或假(true or false),即0或1,但c语言没有布尔类型,以0为假,非0即真。逻辑运算又...

    C语言中逻辑表达式与关系表达式的值

    发布时间:2020-06-18 09:45:57

    来源:亿速云

    阅读:104

    作者:Leah

    这篇文章将为大家详细讲解有关C语言中逻辑表达式与关系表达式的值,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

    关系表达式和逻辑表达式的值是布尔型:真或假(true or false),即0或1,但c语言没有布尔类型,以0为假,非0即真。

    逻辑运算又称布尔运算。布尔用数学方法研究逻辑问题,成功地建立了逻辑演算。他用等式表示判断,把推理看作等式的变换。这种变换的有效性不依赖人们对符号的解释,只依赖于符号的组合规律 。这一逻辑理论人们常称它为布尔代数。

    20世纪30年代,逻辑代数在电路系统上获得应用,随后,由于电子技术与计算机的发展,出现各种复杂的大系统,它们的变换规律也遵守布尔所揭示的规律。

    简介

    1、C语言中的逻辑表达式

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

    2、可以将逻辑表达式的运算结果(0或1)赋给整型变量或字符型变量。

    注意

    由于浮点数在计算机中不能非常准确地表示,所以,判断两个浮点数是否相同时,通常不使用关系运算符"等于"(==),而是利用区间判断方法来实现。

    关于C语言中逻辑表达式与关系表达式的值就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

    展开全文
  • 第一个层次最简单,就是简单的布尔值之间的逻辑与,就是左值和右值都是true时,返回true,两边都是false或者两边的值其中一边是fasle,就返回false;(AND操作); 第二个层次,(false,null,indefined,0,-0,NaN和”...
  • 实现了带括号的逻辑表达式的自动判定,如 ((true && !false) || false) && true || ( false && true )
  • /***@authorCarol* 计算表达式* 利用一个操作数栈和一个操作栈来进行计算* 出栈情况:当前字符串为操作并且优先级小于栈顶操作元素或者遇到“)”,将操作栈中栈顶元素出栈,操作数栈中出栈俩元素* 入栈情况:“(”...

    /***@authorCarol

    * 计算表达式

    * 利用一个操作数栈和一个操作栈来进行计算

    * 出栈情况:当前字符串为操作并且优先级小于栈顶操作元素或者遇到“)”,将操作栈中栈顶元素出栈,操作数栈中出栈俩元素

    * 入栈情况:“(”直接入栈,或者当前操作优先级大于栈顶元素则直接入栈,操作数直接入栈

    *@paramexpression

    *@return

    */

    public static booleanparse2(String expression) {

    Deque operands = new LinkedList<>();//操作数栈

    Deque operate = new LinkedList<>();//操作栈

    StringBuilder sb = newStringBuilder();try{byte[] bytes = expression.getBytes("GBK");for (int i = 0 ; i < bytes.length ; i ++) {//汉字

    if (bytes[i] < 0) {if (i == bytes.length - 1) {//字符串异常截断//不要这个字

    } else{

    sb.append(new String(new byte[]{bytes[i], bytes[i + 1]}, "GBK"));

    i++;

    }continue;

    }

    String thisOp= new String(new byte[]{bytes[i]});//直接入栈

    if ("(".equals(thisOp)) {

    pushOperandIntoStack(operands, sb);

    operate.addFirst(thisOp);continue;

    }//到“(”之前的全部出栈

    if (")".equals(thisOp)) {

    pushOperandIntoStack(operands, sb);

    String topOp=operate.pollFirst();while(!"(".equals(topOp)){

    calculate(operands, topOp);if (operate.size() > 0) {

    topOp=operate.pollFirst();

    }else{//括号没匹配上,逻辑表达式出错

    return false;

    }

    }continue;

    }if (OperatorEnum.isOperator(thisOp)) {//当前是否为操作符//是,1.查看之前是否有字符未入栈,先入栈字符

    pushOperandIntoStack(operands, sb);//2.查看下一个是否为操作,并且非括号,是合并当前一起入操作栈

    String nextOp = new String(new byte[]{bytes[i + 1]});//下个与当前一起组成一个操作

    if (!"(".equals(nextOp) && !")".equals(nextOp) &&OperatorEnum.isOperator(nextOp)) {

    thisOp+=nextOp;

    i++;

    }//判断当前操作与栈顶操作优先级

    if(operate.size() > 0){

    String topOp=operate.getFirst();while(!"(".equals(topOp) && OperatorEnum.getEnumByName(topOp).getPriority()

    topOp =operate.pollFirst();

    calculate(operands, topOp);if (operate.size() > 0) {

    topOp=operate.getFirst();

    }else{break;

    }

    }

    }

    operate.addFirst(thisOp);

    }else{

    sb.append(thisOp);

    }

    }

    }catch(Exception e){

    e.printStackTrace();

    }if(sb.length() > 0){

    operands.addFirst(sb.toString());

    }while(operate.size() > 0){

    String topOp=operate.pollFirst();

    calculate(operands, topOp);

    }if (operands.size() > 0){

    String str=operands.pollFirst();return StringUtils.isNotBlank(str) ? Boolean.parseBoolean(str) : false;

    }return false;

    }private static voidpushOperandIntoStack(Deque operands, StringBuilder sb){if(sb.length() > 0){

    operands.addFirst(sb.toString());

    sb.setLength(0);

    }

    }private static void calculate(Dequeoperands, String topOp){

    String operand2=operands.pollFirst().trim();

    String operand1=operands.pollFirst().trim();//判断两个操作数类型,不一致不可比较直接返回false

    OperandTypeEnum type1 =judgeType(operand1);

    OperandTypeEnum type2=judgeType(operand2);if (type1 ==type2) {switch(type1){caseNUM:

    operands.addFirst(numCalculate(Long.parseLong(operand1), Long.parseLong(operand2),

    OperatorEnum.getEnumByName(topOp))+ "");break;caseDATE:

    operands.addFirst(dateCalculate(operand1, operand2, OperatorEnum.getEnumByName(topOp))+ "");break;caseSTR:

    operands.addFirst(strCalculate(operand1, operand2, OperatorEnum.getEnumByName(topOp))+ "");break;

    }

    }else{

    operands.addFirst("false");

    }

    }private staticOperandTypeEnum judgeType (String operands) {

    operands=operands.trim();if (Pattern.matches("^[-\\+]?[\\d]*$", operands)) {returnOperandTypeEnum.NUM;

    }if(DateUtil.verifyDateLegal(operands)) {returnOperandTypeEnum.DATE;

    }returnOperandTypeEnum.STR;

    }private static boolean numCalculate(long operand1, longoperand2, OperatorEnum operate){switch(operate){caseLT:return operand1 operand2;caseEGT:return operand1 >=operand2;caseEQ:return operand1 ==operand2;caseNEQ:return operand1 !=operand2;default:return true;

    }

    }private static booleanstrCalculate(String operand1, String operand2, OperatorEnum operate){switch(operate){caseEQ:returnoperand1.equals(operand2);caseNEQ:return !operand1.equals(operand2);caseAND:return "true".equals(operand1) && "true".equals(operand2);caseOR:return "true".equals(operand1) || "true".equals(operand2);default:return true;

    }

    }private static booleandateCalculate(String operand1, String operand2, OperatorEnum operate){switch(operate){caseLT:return DateUtil.compareDate(operand1, operand2) == -1 ? true : false;caseELT:return DateUtil.compareDate(operand1, operand2) <= 0 ? true : false;caseGT:return DateUtil.compareDate(operand1, operand2) == 1 ? true : false;caseEGT:return DateUtil.compareDate(operand1, operand2) >= 0 ? true : false;caseEQ:return DateUtil.compareDate(operand1, operand2) == 0 ? true : false;caseNEQ:return DateUtil.compareDate(operand1, operand2) != 0 ? true : false;default:return true;

    }

    }

    展开全文
  • 逻辑表达式运算

    2019-10-11 19:39:46
    由大写英文字母和符号~、 *、+、()组成逻辑表达式,其中三个符号分别表示逻辑非、与、或运算,英文字母表示变量,变量有两种可能的取值,FALSE(0)或TRUE(1),~、*、+、括号()可改变表达式的运算次序,且...
  • 算术运算符: 意义 运算符 ...如果参与数学运算的某操作数不是数字型,那么...隐式转换的本质是内部调用Number()函数true+true=2 false+2=2 3*'2天'=NaN 有关IEEE754: JavaScript中,有些小数的数学运
  • 逻辑表达式(与、异或)表达式

    千次阅读 2021-01-28 14:30:43
    逻辑运算符——异或^ a^b 当a、b相同时,结果为false;a、b不同时,结果为true。(同则false,异则true逻辑运算符——与&、短路与&& a&(a++>0):当A为false时,会对b进行运算 a&&b(a...
  • 主要是判断逻辑表达式是否合法 public static boolean validateExpression(String expression){ // 统一大写 expression=expression.toUpperCase(); //去空格 替换一些符号 expression=expression.replace(" ","") ...
  • C# 逻辑表达式解析器源码

    热门讨论 2011-04-25 10:13:42
    对四则混合运算做了些扩展,增加了关键字,表达式最终还是返回一个运算值。 支持操作数:int、double、bool、datetime、string 支持关键字:IF、AND、OR、NOT、TRUE、FALSE、ToString、ToDateTime、ToInt、ToDouble...
  • Python:条件判断和逻辑表达式

    千次阅读 2019-04-21 14:38:13
    条件判断和逻辑表达式 (1)逻辑类型bool (2)比较运算符 (3)逻辑运算符 (4)优先级和结合性 逻辑类型bool 运算符求值一个关系表达式,应该得到一个运算结果。python中用两个特殊的逻辑对象表示比较的结果...
  • C++ 逻辑表达式求值

    千次阅读 2018-09-28 18:38:02
    // 逻辑表达式数的转换 string MidToPost(char* c); // 求表达式对应的后缀表达式 char GetValuePost(string c); int main() { char str[N]; string post; char ans; int i = 0; while (gets_s(str, N)) { ...
  • 在||左右两边的表达式,只要有一个成立,那么这个逻辑表达式的值就是true。只有两个都不成立,才是false;   ②“&&”,同样没有双引号,意思是 and。在&&左右两边的表达式,只要有至少一个不成立,就是false,...
  • C++逻辑常量和变量 C++的逻辑常量只有两个:false和true,逻辑型变量的定义是用bool,bool...在C++的逻辑表达式中,如果这个逻辑表达式有多个逻辑运算符,则优先级会按照逻辑非->逻辑与->逻辑或,其中逻辑非优先
  • 关系表达式、条件表达式、逻辑表达式

    万次阅读 多人点赞 2018-10-28 20:18:29
    一、算述表达式 优先级高 左结合 赋值表达式 优先级低 右结合 二、关系表达式(比较) 1、关系表达式(左结合): ...成立:命题为真(true)值为1 不成立:命题为假(false)值为0 三、条件表达式(...
  • 必要的基本知识储备: ...假设输入是2,如何计算下面是一个逻辑表达式 if (n == 1 || n % 2 == 0 && n != 2) { 传统做法:快速扫描一下,看到有逻辑||和逻辑&&, 先考虑&&,&&的结
  • 算术表达式 算术运算符用于对操作数进行各种算术运算。Python 中的算术运算符如表所示。 在Python 3 中,除法运算符(/)永远返回一个浮点数,因此5/2 的结果将为2.5。 表达式中最常见也最基础的一类就是算术...
  • 重点学习编程的关系和逻辑运算,并掌握关系和逻辑运算符的使用方法。1、 关系表达式人们在网上挑选商品时,一般会使用电商的商品价格排序功能,将商品按照价格从低到高排列,然后再看商品的评论多少和评论内容来筛选...
  • 逻辑表达式筛选 一、逻辑运算符 1、&&、||、! 2、AND、OR、NOT (MySQL中建议使用这组) 3、&&、and两个条件都为true真,结果为true,反之则为false假 4、||、OR 只要有一个条件为true,结果为true...
  • 逻辑表达式和关系表达式运算.c

    千次阅读 2018-11-27 19:24:11
    逻辑表达式和关系表达式 0表示假,1表示真,任何非0的数为真 逻辑表达式是指运算符为或||、与&amp;&amp;、非!的表达式。返回值为0或1,0表示false,非0表示true. 例如!0返回1,0&amp;&amp;1返回0...
  • 第一个层次最简单,就是简单的布尔值之间的逻辑与,就是左值和右值都是true时,返回true,两边都是false或者两边的值其中一边是fasle,就返回false;(AND操作); 第二个层次,(false,null,indefined,0,-0,NaN和”...
  • java解析逻辑表达式

    千次阅读 2015-05-28 14:12:11
    java解析逻辑表达式(执行逻辑运算符的字符串) import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; public class expression {  public static void main(String[] args...
  • 1 // 30-逻辑表达式(逻辑运算符).cpp: 定义控制台应用程序的入口点。 2 // 3 4 #include "stdafx.h" 5 #include <iostream> 6 #include <climits> 7 #include <array> 8 #...
  • C语言中 &&和||的问题 一篇文章带你读懂逻辑表达式! 一篇文章,带你深刻理解逻辑运算符在表达式中的运算情况
  • 1、分支语句 if 和 else if ...如果 test-condition 为 TRUE,则程序将执行 statement,后者既可以是一条语句,也可以是语句块。如果测试程序为 FALSE,则程序将跳过语句。 if else 语句构成(两层条件
  • 我们在开发过程中,经常需要针对一列,基于条件逻辑来返回一个值,那么,这时候就需要使用到CASE表达式了。 例如,以下对Products表的查询就在SELECT语句中使用了CASE表达式,以生成用于描述categoryid列取值的信息...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 250,617
精华内容 100,246
关键字:

true的逻辑表达式