0

私は、100 から 899 までの特定の範囲の no をチェックする C の既存のコードを調べていました。no が値 1FE を持つことができるという条件に加えて、もう 1 つの条件を追加したかったのです。10進数に変換しないでください。しかし、この 16 進数値を確認する必要があります。ここで私の疑問は、ハードウェアが 10 進数と 16 進数の比較をどのように解釈するかということです。ハードウェアは値を 0 と 1 で解釈します。では、10 進数と 16 進数の no を 2 進数に変換して値を確認しますか? (10進数に換算すると1FEは510なので899の中に含まれます)ご理解のほどよろしくお願いいたします。

4

2 に答える 2

4

int x = 0x1fe;コンピューターにとって(より具体的にint x = 510;は、コンパイラーにとってはまったく同じです-実際のハードウェアは「0x1fe」または「510」を表示することはありません-バイナリバージョンのみを表示します)ので、あなたの質問はあまり役に立ちません検出。

ベースを変更すると、値の表現が変更されるだけです。実際の値は変わりません。101 2個のリンゴがあり、5 10 個のリンゴがある場合でも、リンゴの数は同じです。

コンピュータが使用する表現はたまたまバイナリです。(うーん、「たまたま」ではありませんが....ええ。)

于 2012-11-07T00:57:19.143 に答える
3

ここで私の疑問は、ハードウェアが 10 進数と 16 進数の比較をどのように解釈するかということです。

ハードウェアには、10 進数または 16 進数の概念がありません。マシンにとって 0x1FE と 510 は区別できません。それらは、まったく同じものを 2 つの異なる表現で表現したにすぎません。

于 2012-11-07T00:56:40.450 に答える