8

これらのコード フラグメントの出力を分析する必要があります。

int x, y;
x = 200; y = 100;
x = x+y; y = x-y; x = x-y;
printf ("%d %d\n", x, y);

char x, y;
x = 200; y = 100;
x = x+y; y = x-y; x = x-y;
printf ("%d %d\n", x, y);

intこれで、整数とchar文字を表すことがわかりました。違いについて読んだことがありますが、を入れると、printf数字%dの形式で返され、%c文字の形式で返されます。

'A'たとえば、の ASCII 文字コードは 65 ですが、2 番目の関数が ?100 -56ではなく を出力するのは100 200なぜですか?

4

2 に答える 2

10

質問で使用されているプラ​​ットフォームでは、型charは 1 バイト (8 ビット) サイズのようで、符号ビット 1 ビットと値ビット 7 ビット (および 2 の補数演算を使用) の符号付き型です。-128 から 127 までの値を格納しxますy

x = 200 => x takes value -56
y = 100 => y takes value 100
x = x+y => x takes value 44
y = x-y => y takes value -56
x = x-y => x takes value 100
于 2013-04-08T01:51:09.927 に答える