if(k&0xff) {
k=0x00ff;
}else {
k=k>>8;
}的简写。
其实0xff和0x00ff是一样的,都表示同一个十六进制的值。
书上这么写,没有错;至于为什么,就不好说了。
可能是让你多学点知识,也可能是现在很多书其实在编写时并不是很认真的。毕竟尽信书不如无书!
后面的k>>8是把0xff的值右移8位,达到计算的目的(具体什么目的要看具体内容)&。电脑程序和数学符号有非常密切的联系,这个符号&叫做“且”符号。
&是一种逻辑处理符号,主要是用来判断真假,例如:true & false = false,true& true = true,false & false = false从这几个例子可以看出,且的符号的意思是所有子条件都为真,则为真,否则为假。
且符号用[&& ]表示,且符号只有所有的条件都为真,结果才是真的,例如:true && false && true && true返回结果就是false, true && true && 1 && 2返回的结果就是真的。
C语言提供了一组逻辑运算符:或(||)、且(&&)、非(!),分别对应于命题逻辑中的 OR、AND、NOT运算。
逻辑运算符:或||。在命题逻辑中,当P=1或Q=1时,P||Q等于1。
逻辑运算符:且&&。在命题逻辑中,当P=1且Q=1时,P&&Q才等于1。
逻辑运算符:非!。在命题逻辑中,当P等于0时,!P等于1,反之亦然。
C语言逻辑运算符分别是:或(||)、且(&&)、非(!),分别对应于命题逻辑中的 OR、AND、NOT运算。
逻辑运算符:或 ||。在命题逻辑中,当P=1或Q=1时,P||Q等于1。
逻辑运算符:且 &&。在命题逻辑中,当P=1且Q=1时,P&&Q才等于1。
逻辑运算符:非 !。在命题逻辑中,当P等于0时,!P等于1,反之亦然。
C语言的运算符号
比较特别的是,比特右移(>>)运算符可以是算术(左端补最高有效位)或是逻辑(左端补0)位移。例如,将11100011右移3比特,算术右移后成为11111100,逻辑右移则为00011100。因算术比特右移较适于处理带负号整数,所以几乎所有的编译器都是算术比特右移。
运算符的优先级从高到低大致是:单目运算符、算术运算符、关系运算符、逻辑运算符、条件运算符、赋值运算符(=)和逗号运算符。
以上内容参考 百度百科-C语言
C语言中的逻辑运算符:&&(与运算)、||(或运算)、!(非运算)。
与运算符(&&)和或运算符(||)均为双目运算符。具有左结合性。非运算符(!)为单目运算符,具有右结合性。逻辑运算符和其它运算符优先级的关系可表示如下:
本来没有错误,关系运算符都是按“非与或”顺序来运算的。但是,不同的编译器设计者可能对这个的认识不同,因此,如果不加括号就会有歧义,因此,编译器就会提醒应该加括号(编译中有警告:waring),但你不加,也不算错,只是其结果就是按编译器的运算顺序来 *** 作了。
&&是与,||是或;
&是位与,|是位或;
|就是按住shift在按回车上面一个按钮;
两下就是||;
这个不是错误,是警告warning,编译器怕记不住 *** 作符优先级,而导致错误,因此提示||的优先级高于!=。
扩展资料
C语言内置了丰富的运算符,大体可分为10类:算术运算符、关系运算符、逻辑运算符、位 *** 作运算符、赋值运算符、条件运算符、逗号运算符、指针运算符、求字节数运算符和特殊运算符。
根据运算符可 *** 作的 *** 作数的个数,可把运算符分为一元运算符、二元运算符和多元运算符(一般三元)。优先级:当不同运算符优先级不同时,先计算谁后计算结合性:当不同运算符优先级相同时,先计算谁后计算谁。
C语言中的与、或、非是C语言的逻辑运算符。
1、逻辑与
在C语言中逻辑与用&&表示。
举例:a&&b(其中a、b都代表一个条件)
如果a和b都为真,则结果为真,如果a和b中有一个条件为假,则结果为假。
2、逻辑或
在C语言中逻辑或用||表示。
举例:a||b(其中a、b都代表一个条件)
如果a和b有一个或以上为真,则结果为真,二者都为假时,结果为假。
3、逻辑非
在C语言中逻辑非用!表示。
举例:!a(a代表一个条件)
如果a为假,则!a为真,如果a为真,则!a为假。
扩展资料
在C 语言中的逻辑运算符及优先级:
一元:!(逻辑非)。
二元:&&(逻辑与)、||(逻辑或)。
以上三种逻辑运算符中,逻辑非 ! 的优先级最高,逻辑与 && 次之,逻辑或 || 优先级最低。即算术、逻辑、赋值运算符的优先级顺序为:
逻辑非 ! >算术 > 逻辑与 &&、逻辑或 || > 赋值=
区别:
1运算符性质不同。
&是一个位运算符。
&&是一个逻辑运算符。
2作用不同。
&是将两个二进制的数逐位相与,结果是相与之后的结果。
&&就是判断两个表达式的真假性,只有两个表达式同时为真才为真,有一个为假则为假,具有短路性质。
3用途限制。
&除了是一个位运算符,也是取地址符。
&&就是一个单纯的逻辑运算符,没有任何其他含义。
参考资料&-百度百科
&&-百度百科
用法1:表达式1&表达式2
用法2:表达式1&&表达式2
当表达式1与表达式2的值皆为非0(真)时,则整个表达式的值为非0(真),否则,整个表达式的值为0(假)。
其中,用法1中用的是“&”,当运算表达式时,“&”两边的表达式都要进行运算,也就是说,无论表达式1的值为真还是假,都要运算表达式2;用法2中用的是“&&”,前面说了这是短路与,所以,当表达式1为假时,则整个表达式为假,且不再运行表达式2。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)