1

エンディアンと C でのその役割について少し読んだことがありますが、これを明確にすることができたものは何もありません。私はCを始めたばかりで、この例を見ました:

#include <stdio.h>

int main(void) {
    int x = 017;
    int y = 12;
    int diff = x - y;
    printf("diff is %d\n", diff);
    return 0;
}

そして、何を印刷するかを尋ねます。この例をコンパイルして実行したところ、diff が 3 であるため、x は 15 であることがわかりました。これがなぜなのかはなんとなくわかりますが、誰かが本当にそれを明確にしてくれたら本当にありがたいです。

[1] 同様の質問を探しましたが、問題を完全に説明したものは見つかりませんでした。誰かが私を 1 つにリンクできれば、それも良いでしょう。

4

2 に答える 2

8

数値0の前に を付けると、8 進数 (基数 8) の数値としてマークするようにコンパイラに指示されます。

接頭辞を付けると、0x16進数(基数16)を使用するように指示されます

例えば:

int x = 05;  // 5 in octal
int y = 5;   // 5 in decimal
int z = 0x5; // 5 in hex
于 2013-10-21T02:56:33.723 に答える