28

電卓を開いてそのような小さなことを行うのは面倒に思えますが、「知っているほど良い」という言葉を強く信じています。ここで、16 進数を 10 進数に変換する方法をお尋ねします。

その瞬間まで、次の式を使用します。

Hex:        Decimal:
12          12+6
22          22+2*6
34          34+3*6
49          49+4*6
99          99+9*6

C0 や FB のように数字が大きくなると混乱する

あなたが使用している式(脳、機能的ではない)は何ですか?

4

9 に答える 9

43

16 進数が基数 16 であると考えると、実際には非常に簡単です。

最下位桁から始めて、最上位桁に向かって (右から左へ)、その桁に 16 のべき乗を掛けてから、結果を合計します。

例えば:

0x12 = 2 + (1 * 16) = 18

0x99 = 9 + (9 * 16) = 153

次に、A = 10、B = 11、C = 12、D = 13、E = 14、F = 15 であることを思い出してください。

そう、

0xFB = 11 + (15 * 16) = 251

于 2009-05-26T12:08:11.720 に答える
17

それは式ではない..それは式にいくらか似ていない...

式は次のとおりです。

X*16^y ここで、X は変換する数値、y は数値の位置 (右から左) です。

したがって、DA145を 10 進数に変換する場合は、次のようになります。

(5 * 16^0) + (4 * 16^1) + (1 * 16^2) + (10 * 16^3) + (13 * 16^4)

A
- 10
B - 11
C - 12
D - 13
E - 14
F - 15

于 2009-05-26T12:07:05.327 に答える
10

私が扱っていた16進数が32ビットであることがわかったとき、私はこれをほとんどやめました。あまり楽しくありません。

小さい数の場合、私は (最終的に) いくつかのパターンを記憶しました: 10 = 16、20 = 32、40 = 64、80 = 128 (100 = 256、80 は 1 ビット少ないため)。200 = 512 ページ サイズが 512 だったマシンを使用していたので覚えています (どのマシンかはもう覚えていません!)。1000 = 4096 は、別のマシンのページ サイズであるためです。

また、64=100、32=50、B8=200

それがすべてです。それを超えて、私は付け加えます。

于 2009-05-26T12:01:47.677 に答える
7

記録のために、あなたの脳は答えを見つけるために機能的な方法を使用します. 私の脳が16進数の値を見つけるために使用する関数は次のとおりです。

  1. 16 進数を個々の数字に分割します。
  2. 各桁を 10 進数値に変換します (したがって、0 ~ 9 は同じまま、A は 10、B は 11 など)。
  3. 右端の数字から始めて、各値に 16^X 乗を掛けます。ここで、X は右端の数字からの距離です (右端の数字は 16^0 または 1、次は 16^1 または 16、次は 16^) 2、または 256 など)
  4. すべての値を合計します。
于 2009-05-26T12:08:52.107 に答える
3

E0hまでの20h、40hなどの10進値を記憶します。(すでに100hを知っていると思います。)次に、1から16までの数値を加算または減算して、他の数値の場合は10進数値を取得します。

于 2009-09-04T10:17:39.930 に答える
2

単語内の特定のインデックスの 10 進値を決定する際に、すべての基数に対して一般化されます。

b^i*n

ここで、b はベース、i は単語のインデックス、n はインデックスの数値です。b,i,n = bin = バイナリの略であることを覚えておいてください。

例:


base2 (バイナリ) 1 000 の場合、1 がある場所の値を取得します。

b = base、つまり base2: b=2

i = 単語内の 0 ベースのインデックス、つまり 1000、1 は 3 番目のインデックス、i=3

n = インデックスに記載されている数、つまり 1000、3 番目のインデックスは 1、n=1

したがって、2^3*1 = 8


base10 (10 進数) 9 00 の場合、9 がある場所の値を取得します。

b=10、i=2、n=9 : 10^2*9 = 100*9 =900


base16 (16 進数) 0x0 f 0 の場合、f が配置されている場所の値を取得します。

b=16、i=1、n=15 (0-9、af、f=15) : 16^1*15 = 16*15 = 240


これを使用して単語内の各インデックスの値を決定し、各値を合計して完全な単語値を決定できることに注意してください。

例: 1001、左から右へ (合計の順序は関係ありません):

(2^3*1=8) + (2^2*0=0) + (2^1*0=0) + (2^0*1=1) = 9

于 2016-03-23T16:03:27.427 に答える
2

小数値は

20h = 0x16^0 + 2x16^1 = 0x1 + 2x16 = 0 + 32 = 32

10 進表記、または(32)10.

40h1664進数では 10 進数になり、 では 10進EOH数になり224ます。

于 2011-11-11T07:36:36.043 に答える