1

10 進値が 65 の定数を C で次のように記述する方法を示します。

a. 16 進定数 b. 8 進定数 (C)
65/16 = 1 r1
1/16 = 0 r1
Hexadecimal constant = 11


65/8 = 8 r1
8/8 = 1 r0
1/8 = 0 r1 Octal constant = 101

これは C で定数を変換する正しい方法ですか?

4

3 に答える 3

0

この方法は、結果が底より小さくなるまで底で割ることです。

したがって、65/8 は 8 r1 を返しますが、結果は 8未満ではないため、そこで停止しません。

また8で割ると1になる

そのはず

65/64 = 10 r 1 ここで、64 = 8x8 = 8 進数の 10

余計なことは言ってないと思う

于 2011-05-09T04:09:11.043 に答える
0

while ループと文字列が必要なだけです。これは宿題なので、これ以上言う必要はないと思います。

于 2011-05-09T04:00:30.803 に答える
0

質問を誤解しているのかもしれませんが、10 進数を 16 進数と 10 進数に変換するアルゴリズムを実装する方法ではなく、16 進数と 10 進数の定数が C でどのように表現されるかを尋ねられているようです。

その場合:

16 進数は、先行する 0x または 0X によって表されます。

8 進数は、先行する 0 によって表されます

int hex = 0x41;
int oct = 0101;

もちろん、値を 10 進数で出力することでこれを確認できます。

printf("%d\n", hex);
printf("%d\n", oct);
于 2011-05-09T04:33:17.263 に答える