C语言中 运算符&是什么意思?

Python023

C语言中 运算符&是什么意思?,第1张

&: 在C语言中有两种意思,一种是取地址符,是单目运算符;另一种是位运算符,表示“按位与”,是双目运算符。|: 是位运算符,表示“按位或”。

资料扩展

1、符号 &和 | 这两个运算符都是二进制的按位操作符。

&: 二进制“与”(都为1时,结果是1,否则是0。),比如:1010 &1011 = 1010,1010 &1000 = 1000。

|: 二进制“或”(有1时,结果是1,都是0时,结果为0。),比如:1010 | 1011 = 1011,1010 | 1000 = 1010。

2、位运算符将数字视为二进制值,并按位进行相应运算,运算完成后再重新转换为数字。

例如:

表达式10&15表示(1010 &1111),它将返回表示1010的值10。因为真真得真,或者是11得1,同位全是1结果也是1。

表达式10|15表示(1010 | 1111),它将返回表示1111的值15。假假得假。全零得零。

3、C语言中的符号分为10类:算术运算符、关系运算符、逻辑运算符、位操作运算符、赋值运算符、条件运算符、逗号运算符、指针运算符、求字节数运算符和特殊运算符。

4、位操作运算符:参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。

结果是3

解答过程:

首先算a^b  

^表示异或    十进制a=1, 等于二进制0001 ;十进制b=2,等于二进制0010

异或为对应位不同时取真,故0001^0010结果为0011,即为十进制的3

再算 (a^b) &c

&表示按位与,a^b的结果为3,即二进制的0011

c=3,即二进制的0011

0011&0011=0011

何谓按位与?  这个例子来说,按位与就是从左起,第一位与第一位求与运算,第二位与第二位求与运算,以此类推,1&1=1 ,1&0=0, 0&1=0,  0&0=0  这个总该知道吧

故结果为3。

c语言位运算符包括 位逻辑运算符 和 移位运算符。

位逻辑运算符:&按位与,|按位或,^按位异或,~取反

移位运算符:<<左移,>>右移

-----------------------------------------------------------------------

&按位与运算符:二进制中运算,0&0=0,0&1=0,1&0=0,1&1=1,相当于布尔型的与运算

|按位或运算符:二进制中运算,0|0=0,0|1=1,1|0=1,1|1=1,相当于布尔型的或运算

^按位异或运算符:二进制中运算,0^0=0,0^1=1,1^0=1,1^1=0,0与0位异或等于0,1与1位异或等于0,1和0异或等于1

~取反运算符,二进制中运算:~1=0,~0=1,非1等于0(非真得假)非0等于1(非假得真)。

<<左移运算符:运算规则:把"<<"左边的运算数的各二进制位全部左移若干位,移动的位数由"<<"右边的数指定,高位丢弃,地位补0。可以实现乘法运算,二进制0000011<<2得二进制00001100.

>>右移运算符:运算规则:把">>"左边的运算数的各二进制位全部右移若干位,移动的位数由">>"右边的数指定。有符号的数右移时符号也随着右移;是正数的话在最高位补0,是负数的话,符号位为1,最高位补0还是补1决取于计算机系统的规定。移入0的称为"逻辑右移",移入1的称为“算术左移”。很多系统规定为补1,即“算术右移”。右移运算可以实现除法的功能,右移1位相当于该数除以2,右移n位相当于该数除以2的n次方。

-------------------------------------------------------------------------

运算符优先级运算符类型

& 8 双目

|10双目

^9 双目

~ 2 单目

<<5 双目

>>5 双目

---------------------------------------------------------------------------