C++の演算子&と&&、|と||の詳細と区別
1572 ワード
C++の演算子&と&&、|と||の詳細と区別
概要:
&&は論理と演算子、|は論理あるいは演算子で、すべて論理演算子で、両側はboolタイプ&と|は論理演算を行うことができて、またビット演算を行うことができて、両側はboolタイプで、また数値タイプであることができます
違い:
if(A&&B)Aがfalseの場合、式全体がfalseとなり、Bの値は計算されません.if(A&B)Aがfalseの場合、式全体がfalseになりますが、Bの値も計算されます.if(A&&B++)Aがfalseの場合、&&は後の値if(A&B+)を計算しません.Aがfalseの場合、&は後の値を計算します.
&|整数型とbool型の2つの演算規則を事前に定義した
整数型について、&|計算操作数のビット「と」;boolオペランドについて、&|オペランドの論理「与」、「または」を計算する.すなわちboolタイプ&と&&,|と|に対するif判定結果は同じである.整形データ&&は真偽(0または非0)のみを判断し、両方のデータは真またはどちらか一方が偽でなければならない.整形データ&両側のデータについてはビットと演算を行い、計算結果を返しifにこの値論理(AND):true&&false:falseビット(AND):1001 0110&1111:1001 0110(バイナリビット)を判断させる
例:
読書に感謝して、みんなを助けることができることを望んで、みんなの当駅に対する支持に感謝します!
概要:
&&は論理と演算子、|は論理あるいは演算子で、すべて論理演算子で、両側はboolタイプ&と|は論理演算を行うことができて、またビット演算を行うことができて、両側はboolタイプで、また数値タイプであることができます
違い:
if(A&&B)Aがfalseの場合、式全体がfalseとなり、Bの値は計算されません.if(A&B)Aがfalseの場合、式全体がfalseになりますが、Bの値も計算されます.if(A&&B++)Aがfalseの場合、&&は後の値if(A&B+)を計算しません.Aがfalseの場合、&は後の値を計算します.
&|整数型とbool型の2つの演算規則を事前に定義した
整数型について、&|計算操作数のビット「と」;boolオペランドについて、&|オペランドの論理「与」、「または」を計算する.すなわちboolタイプ&と&&,|と|に対するif判定結果は同じである.整形データ&&は真偽(0または非0)のみを判断し、両方のデータは真またはどちらか一方が偽でなければならない.整形データ&両側のデータについてはビットと演算を行い、計算結果を返しifにこの値論理(AND):true&&false:falseビット(AND):1001 0110&1111:1001 0110(バイナリビット)を判断させる
例:
//a&b , a b ( , ) ;
value = 1 & 1; //1
value = 1 & 0; //0
value = 0 & 1; //0
value = 0 & 0; //0
value = 3 & 3; //3 :11 = 11&11
value = 3 & 2; //2 :10 = 11&10
value = 2 & 3; //2 :10 = 10&11
value = 5 & 6; //4 :100 = 101&110
value = 213 & 73; //65
//a|b , a b ( , ) ;
value = 1|1; //1
value = 1|0; //1
value = 0|1; //1
value = 0|0; //0
value = 3|3; //3 :11 = 11 | 11
value = 3|2; //3 :11 = 11 | 10
value = 2|3; //3 :11 = 10 | 11
value = 5|6; //7 :111 = 101 | 110
value = 213|73; //221
読書に感謝して、みんなを助けることができることを望んで、みんなの当駅に対する支持に感謝します!