13

次のコードがあります。

SN.get_Chars(5)

SNは文字列なので、これは 5 番目の Char を与えるはずです。Ok!

今、私は別のコードを持っていますが:SN.get_Chars(0x10)

0x10ってなんだろう?数字ですか?もしそうなら、それは10進数で何ですか?

4

5 に答える 5

91

0xNNNN(必ずしも 4 桁である必要はありません) は、少なくとも C では、16 進数 (ラテン語由来の言語では 'hex' が 6 で 'dec' が 10 であるため、基数 16 )を表しますN。10 から 15 までのいずれかを表す小文字の同等物) であり、数値にはこれらの数字が 1 つ以上含まれる場合があります。それを表す別の方法は NNNN 16です。09AF

1 桁の 16 進数が 4 ビット (2 進数) を表すため、コンピューターの世界では非常に便利です。これは、それぞれが 2 つの可能な値を持つ 4 ビットで、合計2 x 2 x 2 x 2または16(2 4 ) の値が得られるためです。言い換えると:

  _____________________________________bits____________________________________
 /                                                                             \
+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
| bF | bE | bD | bC | bB | bA | b9 | b8 | b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 |
+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
 \_________________/ \_________________/ \_________________/ \_________________/ 
      Hex digit           Hex digit           Hex digit           Hex digit

X を基数とする数値は、各位置が X の累乗の倍数を表す数値です。


私たち人間が慣れ親しんでいる 10 進法では、使用される数字は09で、数字 7304 10は次のとおりです。

  • (7 x 10 3 ) = 7000 10 ; プラス
  • (3 x 10 2 ) = 300 10 ; プラス
  • (0 x 10 1 ) = 0 10 ; プラス
  • (4 x 10 0 ) = 4 10 ; 7304 に等しい。

8 進数で、数字は0~7です。番号 754 8は次のとおりです。

  • (7 x 8 2 ) = 448 10 ; プラス
  • (5 x 8 1 ) = 40 10 ; プラス
  • (4 × 8 0 ) = 4 10 ; 492 10に等しい。

C の 8 進数の前には文字が付いている0ため0123、123 ではなく、(1 * 64) + (2 * 8) + 3、つまり 83 になります。


2 進数では、数字は01です。番号 1011 2は次のとおりです。

  • (1 × 2 3 ) = 8 10 ; プラス
  • (0 × 2 2 ) = 0 10 ; プラス
  • (1 × 2 1 ) = 2 10 ; プラス
  • (1 × 2 0 ) = 1 10 ; 11 10に等しい。

16 進数で、数字は0~9A~ですF(これは ~ の「数字」を表します10) 15。番号 7F24 16は次のとおりです。

  • (7 x 16 3 ) = 28672 10 ; プラス
  • (F x 16 2 ) = 3840 10 ; プラス
  • (2 x 16 1 ) = 32 10 ; プラス
  • (4 x 16 0 ) = 4 10 ; 32548 10に等しい。

0x10C が 10 16を表す方法である比較的単純な数は、次のとおりです。

  • (1 x 16 1 ) = 16 10 ; プラス
  • (0 x 16 0 ) = 0 10 ; 16 10に等しい。

余談ですが、数のさまざまな基数は多くのことに使用されます。

  • 10 進法は、前述のように、手に 10 桁の数字を持つ人間によって使用されます。
  • 基数 2 は、電気回路で 2 つのバイナリ状態を表すのが比較的容易であるため、コンピューターで使用されます。
  • 基数 8 は UNIX ファイル許可でほぼ排他的に使用されるため、各 8 進数はバイナリ許可 (読み取り/書き込み/実行) の 3 つのタプルを表します。また、C ベースの言語や UNIX ユーティリティで、印刷可能な文字のみのデータ ストリームにバイナリ文字を挿入するためにも使用されます。
  • 基数 16 は、4 ビットを 1 桁で表すのに便利な方法です。最近のほとんどのアーキテクチャでは、ワード サイズが 4 ビットの倍数であるため、特にそうです。
  • base 64 はメールのエンコードに使用されるため、印刷可能な文字のみを使用してバイナリ ファイルを送信できます。各数字は 6 つの 2 進数を表すため、3 つの 8 ビット文字を 4 つの 6 ビット数字にパックできます (ファイル サイズは 25% 増加しますが、メール ゲートウェイをそのまま通過することが保証されています)。
  • やや有用なスニペットとして、基数 60 は非常に古い文明 (バビロン、シュメール、メソポタミアなど) に由来し、60 秒/分 (分/時間)、円で 360 度、60 分 ( [コンピューター業界とはあまり関係ありませんが、それでも興味深い]。
  • さらに役に立たないスニペットとして、『銀河ヒッチハイク・ガイド』の究極の質問と回答は、「6 を 9 で掛けると何が得られるか?」でした。そして「42」。これは、地球のコンピューターが故障したためだと言う人もいますが、作成者が 13 本の指を持っている証拠だと考える人もいます :-)
于 2009-03-28T05:54:06.240 に答える
50

0x は、数値が16 進数または基数 16 であることを意味します。

0x10 は 16 です。

于 2009-03-28T05:34:29.377 に答える
3

これは 16 進数で、10 進数で 16 です。

于 2009-03-28T05:34:54.257 に答える
3

'10' は、そのベースのベースの表現であることに注意してください。

10 は底 2 の 2(10 進数)

10 は 3 進法の 3 (10 進数) です。

...

10 は 10 進数の 10 です。

...

10 は base-16 (16 進数) で 16 (10 進数) です。

...

10 は 1024 を底とする 1024 (10 進数) です。

...等々

于 2009-04-21T06:51:49.937 に答える