У меня есть код из теста, и я не понимаю, почему результат равен 2.
#include <stdio.h>
int main() {
int a=0x000C, b;
b=(a=(a&~a)||a,a<<1);
printf("%x",b);
}
C = 12 и это 1100 в двоичном формате, а затем вы делаете 1100 & 0011 (отрицается a) = 0000 но я не понимаю, почему есть 2 "|" потому что эти 2 логических «или» или «или», которые вы используете в командах if?