C语言中的按位运算符和逻辑运算符?

C语言中的按位运算符和逻辑运算符的区别?书上有个例子:x=7,x&&8的值为真,x&8的值为假。怎模理解呢?

&&是逻辑与,计算机的逻辑无非两种,0和非0,7和8都是非0,那么7&&8就是非0,也就是真了。
&是位操作,即按两个操作数的二进制每一位进行与运算
7的二进制:00000111
8的二进制:00001000
与运算后为:00000000,结果就是假了
温馨提示:内容为网友见解,仅供参考
第1个回答  2007-12-24
二者是不同的概念。
逻辑运算是针对真(1)和假(0)两个逻辑值来进行的操作。具体到数字时,0对应假。非零对应真。故而7&&8结果是真。
位运算是整数特有的造作,是对操作数的二进制编码的每一位进行运算
第2个回答  2007-12-24
7: 00000111
8: 00001000
按位与就是每位相与,答案是
7&8:00000000
当然是假
第3个回答  2007-12-24
预备知识:
逻辑值即bool值,要么是true,要么是false.
算数值,也就是我们通过加、减、乘、除、异或、同或等运算后得到的数值。
当然,在一定的场合中,逻辑值和算数值是可以转换的。
C语言归定:
逻辑值转算数值:true等价于1,false等价于0
例:
void main()
{
bool b=true;
bool c=false;
printf("%d %d",b,c);
}
输出:1 0
算数值转逻辑值时:
0等价于false,非0等价于true.
注意:非0等价于true.也就是说负数也等价于true的。
---------------
要我们来看书上的这个例子.
int x=7;
if (x&&8)
{...}
由此可知,7>0即为true,8>0也为true。那么,true&&true当然也是true了。
-------------
int x=7; //7的二进制写法是 0111b
if (x&8)//8的二进制写法是 1000b
{...}
那么,当111b和1000b取与操作的时候,当然是0了。那么,在逻辑表里就是false了

C语言中的按位运算符和逻辑运算符?
&&是逻辑与,计算机的逻辑无非两种,0和非0,7和8都是非0,那么7&&8就是非0,也就是真了。&是位操作,即按两个操作数的二进制每一位进行与运算 7的二进制:00000111 8的二进制:00001000 与运算后为:00000000,结果就是假了

C语言的逻辑运算和按位运算怎么区分?
&&、||是逻辑运算符,用于从左到右求表达式的真值。假设x=1;y=2;那么x&&y=1;x||y=1。&、|是位运算符,是对x,y进行位运算,x,y取值如上,那么有x&y=0;(x的二进制表示为00,y的二进制表示为10)。2、判断这个表达式的真或假的不同 &和|既是逻辑运算符也是位运算符,而&&和|...

c语言运算符优先级顺序表
C语言中,运算符的优先级可以分为不同级别,具体优先级顺序如下:最高优先级:单目运算符(如取反、乘方等)、赋值运算符(=、+=、-=、*=等)、逻辑非运算符(!)、关系运算符(<、<=、>、>=等)、相等运算符(==、!=等)、按位与运算符(&)、按位异或运算符(^)、按位或运算符(|...

c语言中的运算符有哪些?
C语言中的运算符包括以下几种:1. 算术运算符:包括加法运算符(+)、减法运算符(-)、乘法运算符(*)、除法运算符(\/)和取余运算符(%)。2. 关系运算符:包括相等运算符(==)、不等运算符(!=)、大于运算符(>)、小于运算符(<)、大于等于运算符(>=)和小于等于运算符(<=)。3...

在C语言中有“按位与”和“逻辑与”,前者是指什么啊?
按位与: 运算符查看两个表达式的二进制表示法的值,并执行按位“与”操作。该操作的结果如下所示: 0101 (expression1) 1100 (expression2) --- 0100 (result) 任何时候,只要两个表达式的某位都为 1,则结果的该位为 1。否则,结果的该位为 0。 逻辑与: 当且仅当两个表达式的值都等于 ...

c语言的按位运算符怎么操作!?
位运算 在很多系统程序中常要求在位(bit)一级进行运算或处理。C语言提供了位运算的功能, 这使得C语言也能像汇编语言一样用来编写系统程序。一、位运算符C语言提供了六种位运算符:& 按位与 | 按位或 ^ 按位异或 ~ 取反 << 左移 >> 右移 1. 按位与运算 按位与运算符"&"是双目运算符。

C语言提供3种逻辑运算符,按优先级高低它们分别是
C语言提供三种逻辑运算符,按优先级高低它们分别是:逻辑非(!),逻辑与(&&)、逻辑或(||)。运算规则:&&:当且仅当两个运算量的值都为“真”时,运算结果为“真”,否则为“假”。|| :当且仅当两个运算量的值都为“假”时,运算结果为“"假”,否则为“真”。! :当运算量的值为“真”...

c语言中&,|,还有^都个指是什么意思
^是按位异或,规则:1^1=0,1^0=1,0^0=0 ;位运算符需要将数值转化为二进制:3&5=011B&101B=001B=1(B表示二进制)&&,||,!是逻辑运算符,&&是逻辑与;||是逻辑或;!是逻辑非。0为假,非0为真。如:a=8,b=6,c=0,那么a&&b为真,a||b为真,b&&c为假,!a=0,!c=1....

C语言中“按位运算符”是什么意思?
1、按位运算符就是直接对整数在内存中的二进制位进行操作运算。比如,&&运算本来是一个逻辑运算符,但整数与整数之间可以用&进行运算。举个例子,6的二进制是110,11的二进制是1011,那么6 & 11的结果就是2,它是二进制对应位进行逻辑运算的结果(0表示False,1表示True,空位都当0处理)。2、C...

运算符C语言中的运算符
C语言的运算符主要分为以下几类:算术运算符:包括乘法(*)、减法(-)、加法(+)和除法(\/)。关系运算符:如大于(>)、小于(=)和小于等于(<=)。逻辑运算符:包括逻辑非(!)、与(&&)和或(||)。位运算符:左移(<>)、按位非(~)、按位与(&)和按位或(|)。赋值运算符:基础的等于(=)以及...

相似回答