if元のビットを変更せずに演算子に基づいてステートメントを入力しようとしてbit-wiseいますが、なぜ機能しないのか混乱しています。
ビット 7、4、2 の少なくとも 1 つが 0かどうかを確認しています。
作業コード:(元のビットを変更しますが、これは望ましくありません)
#include <stdio.h>
void main() {
unsigned char ch = 0b11111111;
ch = ~(ch | 0x6B);
if(ch) {
printf("%s\n", "YES");
}
else {
printf("%s\n", "NO");
}
}
ビット7、4、または 2 を 0 にNO変更すると、(本来あるべきように) 印刷され、印刷されます。YES
動かないコード:
#include <stdio.h>
void main() {
unsigned char ch = 0b11111111;
if(~(ch | 0x6B)) {
printf("%s\n", "YES");
}
else {
printf("%s\n", "NO");
}
}
2 つのコードが同一だと思うので、かなり困惑しています。ありがとう!