二进制运算符中,“&”、“|”有何不同?

如题所述

&&和||是用于条件判断,而&和|是位运算。

· 【&】

//相当于二进制减法;

//计算原理:数值转成二进制 > 二进制相减(遇0为0) > 再将二进制计算结果转成数值;

(1&1) = (0001 - 0001 = 0001) = 1
(1&2) = (0001 - 0010 = 0000) = 0
(2&2) = (0010 - 0010 = 0010) = 2
(7&5) = (0111 - 0101 = 0101) = 5
(7&8) = (0111 - 1000 = 0000) = 0
(8&4) = (1000 - 0100 = 0000) = 0

//如:true = 0001, false = 0000
(true|false) = (0001 - 0000 = 0000) = false
(true|true) = (0001 - 0001 = 0001) = true
(false|false) = (0000 - 0000 = 0000) = false

· 【|】

//相当于二进制加法;

//计算原理:数值转成二进制 > 二进制相减(遇1为1) > 再将二进制计算结果转成数值;

(1|1) = (0001 + 0001 = 0001) = 1
(1|2) = (0001 + 0010 = 0011) = 3
(2|2) = (0010 + 0010 = 0010) = 2
(7|5) = (0111 + 0101 = 0111) = 7
(7|8) = (0111 + 1000 = 1111) = 15
(8|4) = (1000 + 0100 = 1100) = 12

//如:true = 0001, false = 0000
(true|false) = (0001 + 0000 = 0001) = true

(true|true) = (0001 + 0001 = 0001) = true

(false|false) = (0000 + 0000 = 0000) = false

· 【&&】

//条件与

//其中一方为false则返回false

//左右两方同时为true则返回true

(true&&false) = false

(true&&true  ) = true

(false&&false) = false


· 【||】

//条件或

//其中一方为true则返回true

//左右两方同时为false则返回false

(true || false) = true

(true || true  ) = true

(false || false) = false

转载自

温馨提示:内容为网友见解,仅供参考
无其他回答

二进制运算符中,“&”、“|”有何不同?
&&和||是用于条件判断,而&和|是位运算。· 【&】\/\/相当于二进制减法;\/\/计算原理:数值转成二进制 > 二进制相减(遇0为0) > 再将二进制计算结果转成数值;(1&1) = (0001 - 0001 = 0001) = 1(1&2) = (0001 - 0010 = 0000) = 0(2&2) = (0010 - 0010 = 0010) = 2(7&...

&和|有什么区别?
&: 在C语言中有两种意思,一种是取地址符,是单目运算符;另一种是位运算符,表示“按位与”,是双目运算符。|: 是位运算符,表示“按位或”。资料扩展1、符号 & 和 | 这两个运算符都是二进制的按位操作符。&: 二进制“与”(都为1时,结果是1,否则是0。),比如:1010 & 1011 = 1010...

C语言中 !% && || 都什么意思?
1.运算符性质不同。&是一个位运算符。&&是一个逻辑运算符。2.作用不同。&是将两个二进制的数逐位相与,结果是相与之后的结果。&&就是判断两个表达式的真假性,只有两个表达式同时为真才为真,有一个为假则为假,具有短路性质。3.用途限制。&除了是一个位运算符,也是取地址符。&&就是一个单...

c语言&和|的区别是什么?
在C语言中,&和|是位运算符,用于操作二进制数。&运算符用于逻辑与运算,表示“与”的关系。例如,0 & 0的结果是0,1 & 0的结果是0,0 & 1的结果是0,1 & 1的结果是1。如果两个操作数的第n位都为1,那么结果的第n位为1;否则,结果的第n位为0。|运算符用于逻辑或运算,表示“或”...

&和|有什么区别?
“|”表示按位或,按位或运算符“|”是双目运算符。其功能是dao参与运算的两数各对应的二进位相或。只要对应的二个二进位有一个为1时,结果位就为1。参与运算的两个数均以补码出现。相关如下 C语言的运算符主要用于构成表达式,同一个符号在不同的表达式中,其作用并不一致。下面按计算的优先顺序,...

c语言中的符号&和|是什么意思?
在C语言中,"|"是一个二元运算符,用于执行位或运算。位或运算的规则是,对应位上至少有一个值为1时,结果就为1,两者都为0时结果才为0。以同样的两个二进制数为例,如果进行位或运算,结果为二进制的所有位置都为最高值。这种操作在处理权限或标志位时特别有用。例如,要设置某个标志位时只需...

c语言中&和|有什么区别?
^ 0b11011 = 0b01110 这意味着,在二进制下,第 2、3 和 6 位是 1 时,结果才为 1。总之,&、| 和 ^ 这三个位运算符在 C 语言中都是用于对二进制数进行位运算的。但是,它们的含义和运算规则是不同的。& 用于执行位与运算,| 用于执行位或运算,而 ^ 用于执行位异或运算。

关于C语言中 || 和 &&的用法
在C语言中,两个运算符||和&&具有显著的不同用途和性质。首先,让我们明确它们的区别:1. 运算符性质的区别:&是一个二进制位运算符,主要应用于位级操作,如对整数的每个二进制位进行按位与运算,产生一个新的数值。相比之下,&&是逻辑运算符,它用于判断两个表达式的真值。当两个表达式都为真时...

C语言中的符号 & 和 | 是什么
在C语言中,符号运算符分为多个类别,其中位操作符包括"&"和"|",它们将数字视为二进制,通过按位操作来处理。比如,10&15实际上是(1010 & 1111),结果为10,反映了二进制位的“与”操作。10|15则为(1010 | 1111),结果为15,表示“或”逻辑的体现。位操作符是C语言中的一部分,总共有六种...

C语言中的运算符的&与&& 和 |与||有什么区别,用在什么地方
&是 按位与 比如a=0xf0(11110000b),b=0xcc(11001100),那么a&b=0xc0(11000000b),意思就是每组二进制位响应地做与运算 同理 | 是按位取或,a|b=0xfc(11111100b)意思就是每组二进制位相应地做或运算。&&和||就是判断逻辑的与和或,比如(a==b)&&(c==d)意思就是,a等于b,并且c等于d...

相似回答
大家正在搜