私自身が大好きなので、この C コードの背後にあるロジックを理解することはできません。
おそらく、以下は unsigned char x のバイナリ表現を出力するはずであり、空白を埋めることだけが許可されています。
void print_binary(unsigned char x) {
int b = 128;
while (__________________) {
if (b <= x) {
x -= b;
printf("1");
} else
printf("0");
______________________;
}
}
もちろん、上記の行を無視するだけでプログラムを操作できます。しかし、これは実際には物事を行う方法ではないという印象を受けています (ハックのようなものです)。
つまり、最初の条件は 128 が <= char であるかどうかをチェックしますが、unsigned char ではなく、255 バイトですか? では、なぜ「1」しか印刷されないのでしょうか。
おそらく、私は非常に明白な何か(実際にはACプログラマーではない)を見逃していますが、今回はロジックが私に浸透していません.
誰かが私を正しい方向に向けることができますか? そして、答えを完全に言わずに手がかりを与えることができれば、それは素晴らしいことです.