§5.1关系运算与逻辑运算(续) 3)当判断两个浮点数是否相等时,由于存储上的误 差,可能会有错误的结果,例如:数学上:恒等式 1.0/3.0*3.0=1.01.0/3.0*3.0=1.0的逻辑值为0 4)在数学中,5>2>7>8无效,但C中是允许的 5)关系表达式的结果可以当成整型数 int a=3, b=5, c=7, d; d=asb>c 逻0 d的值 1>7 为0 逻舞 共37页第6页
共 37页 第 6 页 1.0/3.0 * 3.0 == 1.0的逻辑值为0 3) 当判断两个浮点数是否相等时,由于存储上的误 差,可能会有错误的结果,例如:数学上:恒等式 1.0 / 3.0 * 3.0 = 1.0 4) 在数学中,5 > 2 > 7 > 8 无效,但C中是允许 的 5)关系表达式的结果可以当成整型数 int a=3,b=5,c=7,d; d = a<b > c 逻辑1 1>7 逻辑0 d的值 为0 §5.1 关系运算与逻辑运算(续)
§5.1关系运算与逻辑运算(续) 512逻辑运算符与逻辑表达式 、逻辑运算符 &&(与):两边为1,结果为1 1.有三个‖(或):两边有一个为1,结果为1 !(非):非1为0,非0为1 2.优先级:!的优先级高于&&和‖ 逻辑运算与其他运算相比:非的优先级最高,与和或 低于其他。 3.结合性:与和或是从左向右,非是从右向左 共37页第7页
共 37页 第 7 页 5.1.2 逻辑运算符与逻辑表达式 一 、逻辑运算符 1. 有三个 & & (与): 两边为1,结果为1 || (或):两边有一个为1,结果为1 ! (非):非1为0,非0为1 2. 优先级:!的优先级高于&&和|| 逻辑运算与其他运算相比: 非的优先级最高,与和或 低于其他。 3. 结合性:与和或是从左向右,非是从右向左 §5.1 关系运算与逻辑运算(续)
51关系运算与逻辑运算(续)任何非零实 数均可作为 逻辑表达式 逻辑上的1 1.用逻辑运算符将关系运算表达式或逻辑量连接起来构成 逻辑表达式 2.表达式的值为逻辑的1和0,表示真与假 例:a=5,b=7,c=4,d=3 先做算术运算,再做关系 x=(a+b)>(c+d)&d(d>a) 判断,将最后结果赋给x 5)2>7>8 从左向右运算(5>2)逻辑值为1 整个表达式的值为0 1>7)逻辑值为0 (0>8)逻辑值为0 共37页第8页
共 37页 第 8 页 二 、逻辑表达式 2. 表达式的值为逻辑的1和0,表示真与假 任何非零实 数均可作为 逻辑上的1 例:a=5,b=7,c=4,d=3 x=(a+b)>(c+d)&&(d>a) 先做算术运算,再做关系 判断,将最后结果赋给x 1. 用逻辑运算符将关系运算表达式或逻辑量连接起来构成 逻辑表达式 5 > 2 > 7 > 8 从左向右运算 (5>2)逻辑值为1 (1>7)逻辑值为0 (0>8)逻辑值为0 整个表达式的值为 0 §5.1 关系运算与逻辑运算(续)
§5.1关系运算与逻辑运算(续) 3.在逻辑表达式中,并不是所有的逻辑运算都必须执行 ,如果&&的一边已经为0,结一定为Q,如果‖的 边已经为1,结一定为L (1)a&&b&&ca为非0时,再判断b,a,b均为非0,再 判断c (2)lbc,若a为非0,不必判断b和c,结果一定为1 已知:a=1,b=2,c=3,d=4,m=1,n=1执行 (m=a>b)&&(n=c>d)之后:m-?n=? 由于b的值为0,m=0 m=0 不再判断D(n=c>d)的值,因此,n维持原有的值n=1 共37页第9页
共 37页 第 9 页 3 . 在逻辑表达式中,并不是所有的逻辑运算都必须执行 ,如果&&的一边已经为0,结果一定为 0,如果 || 的一 边已经为 1 ,结果一定为 1 (1) a&&b&&c a为非0时,再判断 b, a,b均为非0, 再 判断c (2 ) a||b||c,若a为非0,不必判断b和 c,结果一定为 1 已知 :a=1,b=2,c=3,d=4,m=1,n=1 执行 (m=a>b)&&(n=c>d) 之后 : m=? n=? 由于 a>b的值为 0,m=0 不再判断(n=c>d)的值,因此,n 维持原有的值 m=0 n=1 §5.1 关系运算与逻辑运算(续)
§5.1关系运算与逻辑运算(续) 求逻辑表达式的值 1)1<4&&4<7 2)1<4&&7>4 3)!(2<=5) 4)!(1<3)‖(2<5) 5)!(4<=6)&(3<=7) 何表示闰4 用C语言描述: 1)a小于b或小于c 2)a和b都大于c (year%4=0&&year%1000 3)a和b中有一个大于c l=0 4)a是非正整数 5)a是奇数 year%400==0) 6)a不能被b整除 共37页
共 37页 第 10 页 求逻辑表达式的值 1 ) 1<4&&4<7 2 ) 1<4 && 7>4 3 ) !(2<=5) 4 ) ! ( 1< 3) || (2<5) 5 ) !(4<=6)&&(3<=7) 用C语言描述: 1)a小于b或小于c 2) a和b都大于c 3)a和b中有一个大于c 4)a是非正整数 5)a是奇数 6)a不能被b整除 如何表示闰年 §5.1 关系运算与逻辑运算(续) ((year%4==0)&&(year%100 !=0) ||(year%400)==0)