複合演算子 '&=' は論理またはビットごとの AND ですか?
つまり、次とa &= b同じです。
a = a & ba = a && b
複合演算子 '&=' は論理またはビットごとの AND ですか?
つまり、次とa &= b同じです。
a = a & ba = a && bbitwise AND簡単です
あなたがするときa&=bそれは意味しますa=a&b
覚えておいてa、整数型に昇格または昇格するb必要がありますintegral type
ながら。&&_logical AND
Cでは、a &= bはa = a & b、つまりビット単位です。bool専用の型があるC++では、&=の単純なものと同様に、ブール値もブール値&ですbool。ただし、これらのいずれもの短絡動作を示しませ&&ん。
これは、尋問ではなく実験によって解決できるクエリの 1 つです。
#include <stdio.h>
#include <inttypes.h>
int main(int argc, char *argv[]) {
uint8_t a = 0xFF;
uint8_t b = 0x0F;
a &= b;
printf("a &= b : %02X\n",a);
a = 0xFF;
printf("a & b : %02X\n", a & b);
printf("a && b: %02X\n", a && b);
}
版画:
a &= b : 0F
a & b : 0F
a && b: 01
コンソールに。
これはビットごとの AND であり、論理ではありません。(何文字か追加する必要があります)
a &= bビットごとの AND 演算子を使用しています。操作を考えてみましょう+=:
a += 5;
以下と同じです:
a = a + 5;
&と の 2 つの操作を組み合わせただけ=です。