zoukankan      html  css  js  c++  java
  • C语言基础丨运算符之逻辑运算符(四)

    在高中数学中,我们就学过逻辑运算,例如p为真命题,q为假命题,那么“p且q”为假,“p或q”为真,“非q”为真。在C语言中,也有类似的逻辑运算:


     

     

    在编程中,我们一般将零值称为“假”,将非零值称为“真”。逻辑运算的结果也只有“真”和“假”,“真”对应的值为 1,“假”对应的值为 0。

    1) 与运算(&&)

    参与运算的两个表达式都为真时,结果才为真,否则为假。例如:

    5&&0

    5为真,0为假,相与的结果为假,也就是 0。

    (5>0) && (4>2)

    5>0 的结果是1,为真,4>2结果是1,也为真,所以相与的结果为真,也就是1。

    2) 或运算(||)

    参与运算的两个表达式只要有一个为真,结果就为真;两个表达式都为假时结果才为假。例如:

    10 || 0

    10为真,0为假,相或的结果为真,也就是 1。

    (5>0) || (5>8)

    5>0 的结果是1,为真,5>8 的结果是0,为假,所以相或的结果为真,也就是1。

    3) 非运算(!)

    参与运算的表达式为真时,结果为假;参与运算的表达式为假时,结果为真。例如:

    !0

    0 为假,非运算的结果为真,也就是 1。

    !(5>0)

    5>0 的结果是1,为真,非运算的结果为假,也就是 0。

    优先级

    以上三种逻辑运算符中,逻辑非 ! 的优先级最高,逻辑与 && 次之,逻辑或  ||  优先级最低。即算术、逻辑、赋值运算符的优先级顺序为:

    逻辑非 ! >算术 > 逻辑与 &&、逻辑或 || > 赋值=

    逻辑表达式的值为逻辑值,即布尔型(bool),该类型为 C99 新增的,一些编译器可能还不支持该类型。

    逻辑值分为逻辑真值和逻辑假值。

    一般情况下,在判断时,仅有零值被判断为逻辑假值(false),一切非零值均可被判断为逻辑真值(true);

    在存储和表示时,通常,使用 1 表示逻辑真值,0表示逻辑假值。

    逻辑与 && 运算符的运算规则:只有两个操作数均为逻辑真时,结果才为真。其余情况,结果均为假。

    逻辑或 || 运算符的运算规则:只有两个操作数均为逻辑假时,结果才为假。其余情况,结果均为真。

    例如,设有定义语句

    inta=3,b=5;

    则有:

    !a:由于 a 非零,为真,!a 为假,其值为 0。

    a||b:由于 a 和 b 均非零,均为真,故逻辑或的结果为真,其值为 1。

    a&&b:由于 a 和 b 均非零,均为真,故逻辑与的结果为真,其值为 1。

    !a||b&&2:由于逻辑非 ! 优先级最高,首先与 a 结合,而 && 优先级高于 ||,相当于(!a)||(b&&2), 即 0||1 为真,其值为 1。

    逻辑运算符举例:


     

    运行结果:

    0,0

    1,0

    0,1

    如果你想更好的提升你的编程能力,学好C语言C++编程!弯道超车,快人一步!

    C语言C++学习企鹅圈子】,分享(源码、项目实战视频、项目笔记,基础入门教程)

    欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!


     
  • 相关阅读:
    jqgrid content-type datatype
    github删除
    springcolud文章收藏
    springboot无法加载oracle驱动终极解决
    当多线程并发遇到Actor
    spring.boot 无法加载oracle驱动的可能原因
    MobileNet V2深入理解
    转载:从loss处理图像分割中类别极度不均衡的状况---keras
    6D姿态估计
    An overview of semantic image segmentation
  • 原文地址:https://www.cnblogs.com/mu-ge/p/14331968.html
Copyright © 2011-2022 走看看