以下のプログラムは実行時に ';'出力として出力する。なぜ私は理解していない。私が 'c'と 'i'の値を変更しているとき、時には '='や ';'セミコロン(;)を印刷するのはなぜですか?
#include<stdio.h>
int main() {
char c='1';
int i=10;
printf("%c", c|i);
}
以下のプログラムは実行時に ';'出力として出力する。なぜ私は理解していない。私が 'c'と 'i'の値を変更しているとき、時には '='や ';'セミコロン(;)を印刷するのはなぜですか?
#include<stdio.h>
int main() {
char c='1';
int i=10;
printf("%c", c|i);
}
は49 | 10 = 59
と59
ので3210のASCIIコードです。
それは00111011である49(00110001)OR 10(00001010)のビットごとのOR演算、(59)を行い、59のASCII値を返して、ページをご覧くださいhttp://ee.hawaii.edu/~tep/EE160/Book/chap4/subsection2.1.1.1.html
あなたは何を理解していません?これはビット単位のORの結果です。期待される成果とは何ですか? –
あなたは、ある値と10を持つ文字 '1'に対してOrのビット演算をしています。これは新しい数値です。これはASCIIの値です。私は推測する。 –
'1'のアスキー値は49で、1の値は10です。実行または操作している場合は59になり、アスキーテーブル59には文字が表示されます。文字 –