web-dev-qa-db-ja.com

0x表記を使用した数値はどういう意味ですか?

数字の0xプレフィックスとはどういう意味ですか?

const int shared_segment_size = 0x6400;

Cプログラムからです。それが何を意味するのか、特に文字xの意味を思い出せません。

89
Terry Li

0xで始まるリテラルは16進整数です。 (ベース16)

番号0x640025600です。

6 * 16^3 + 4 * 16^2 = 25600

文字を含む例の場合(A = 10、B = 11 ... F = 15の16進表記でも使用されます)

番号0x6BF027632です。

6 * 16^3 + 11 * 16^2 + 15 * 16^1 = 27632
24576    + 2816      + 240       = 27632
87
Mysticial

CおよびC構文に基づく言語では、接頭辞0xは16進数(基数16)を意味します。

したがって、0x400 = 4×(162)+ 0×(161)+ 0×(16)= 4×((242)= 22 ×28 = 210 = 1024、または1つのバイナリK。

したがって、0x6400 = 0x4000 + 0x2400 = 0x19×0x400 = 25K

乾杯

13

16進数です。

0x6400は4 * 16 ^ 2 + 6 * 16 ^ 3 = 25600に変換されます

9
knittl

0xで始まる番号は16進数(基数16)です。0x640025600を表します。

変換する、

  • 最後の数字を掛ける1
  • 最後から2番目の桁に16を加算します(16 ^ 1)
  • 最後から3番目の桁に256(16 ^ 2)を加算します
  • 最後から4番目の桁に4096を加算(16 ^ 3)
  • ...等々

係数1、16、256などは、16の累乗の増加です。

0x6400 = (0*1) + (0*16^1) + (4*16^2) + (6*16^3) = 25600 

または

0x6400 = (0*1) + (0*16) + (4*256) + (6*4096) = 25600 
7
Sithu

SIMPLE

これは、番号が他のベースではなく16進数であることを示すプレフィックスです。 Cプログラミング言語はこれを使用してコンパイラーに通知します。

例:

0x64006*16^3 + 4*16^2 + 0*16^1 +0*16^0 = 25600.に変換されます。コンパイラが0x6400を読み取ると、0xの用語を使用して、数値が16進数であることを認識します。通常、(6400)16 or (6400)8または任意のベースで理解できます。

何らかの形で助けられたことを願っています。

良い一日、

5
loyola