144

数字上的0x前缀是什么意思?

const int shared_segment_size = 0x6400;

它来自一个C程序。我不记得它的含义,尤其是这封信的x含义。

4

5 回答 5

142

以 开头的文字0x是十六进制整数。(基地 16)

0x640025600

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

对于包含字母的示例(也用于十六进制表示法,其中 A = 10,B = 11 ... F = 15)

0x6BF027632

6 * 16^3 + 11 * 16^2 + 15 * 16^1 = 27632
24576    + 2816      + 240       = 27632
于 2011-11-18T18:10:41.457 回答
22

在 C 和基于 C 语法的语言中,前缀0x表示十六进制(以 16 为基数)。

因此,0x400 = 4×(16 2 ) + 0×(16 1 ) + 0×(16 0 ) = 4×((2 4 ) 2 ) = 2 2 × 2 8 = 2 10 = 1024,或一个二进制 K .

所以 0x6400 = 0x4000 + 0x2400 = 0x19×0x400 = 25K

于 2011-11-18T18:10:37.513 回答
10

这是一个十六进制数。

0x6400 转换为 4*16^2 + 6*16^3 = 25600

于 2011-11-18T18:10:55.433 回答
8

简单的

它是一个前缀,表示数字是十六进制而不是其他基数。C 编程语言使用它来告诉编译器。

例子 :

0x6400翻译为6*16^3 + 4*16^2 + 0*16^1 +0*16^0 = 25600.当编译器读取0x6400时,它在 0x 术语的帮助下理解数字是十六进制的。通常我们可以通过(6400)16 or (6400)8或任何基础来理解..

希望以某种方式有所帮助。

再会,

于 2015-06-05T05:56:46.733 回答
8

以 开头的数字0x是十六进制(以 16 为基数)。0x6400代表25600

转换,

  • 将最后一位数字乘以 1
  • 添加倒数第二个数字乘以 16 (16^1)
  • 添加倒数第三位乘以 256 (16^2)
  • 添加倒数第四位乘以 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 
于 2016-05-04T16:46:37.177 回答