-3
int main() { int i; scanf("%i",&i); printf("%d",i); }

-077i/pとしている場合、予想どおり -63 を取得していますが、i/p-078 の場合o/pは -7 です。

私が間違っていることを説明してもらえますか?

4

2 に答える 2

2

ただし、i/p が -078 の場合、o/p は -7 です。説明してもらえますか???

変換は、使用された基数で有効な数字ではない最初の文字で停止します。数字は で始まり、'0'直後に'x'またはが続かない'X'ため、選択された基数は 8です。'8'は 8 進数ではありません。したがって、変換は のみを消費し"07"ます。

于 2013-03-02T19:13:09.050 に答える
1

これは、8 は 8 進数では有効な数字ではないためです。0 ~ 7 を使用します。

于 2013-03-02T19:13:52.440 に答える