0

複合演算子 '&=' は論理またはビットごとの AND ですか?

つまり、次とa &= b同じです。

  • a = a & b
  • a = a && b
4

5 に答える 5

2

bitwise AND簡単です

あなたがするときa&=bそれは意味しますa=a&b

覚えておいてa、整数型に昇格または昇格するb必要がありますintegral type

ながら。&&_logical AND

于 2012-11-29T14:55:39.900 に答える
2

Cでは、a &= ba = a & b、つまりビット単位です。bool専用の型があるC++では、&=の単純なものと同様に、ブール値もブール値&ですbool。ただし、これらのいずれもの短絡動作を示しませ&&ん。

于 2012-11-29T14:54:08.580 に答える
2

これは、尋問ではなく実験によって解決できるクエリの 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

コンソールに。

于 2012-11-29T15:01:20.507 に答える
2

これはビットごとの AND であり、論理ではありません。(何文字か追加する必要があります)

于 2012-11-29T14:52:24.283 に答える
2

a &= bビットごとの AND 演算子を使用しています。操作を考えてみましょう+=:

a += 5;

以下と同じです:

a = a + 5;

&と の 2 つの操作を組み合わせただけ=です。

于 2012-11-29T14:52:29.367 に答える