使用0x表示法的数字是什么意思?

Ter*_* Li 94 c hex integer notation

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

const int shared_segment_size = 0x6400;
Run Code Online (Sandbox Code Playgroud)

它来自C程序.我不记得它的x含义,特别是这封信的含义.

Mys*_*ial 94

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

这个数字0x640025600.

6 * 16^3 + 4 * 16^2 = 25600
Run Code Online (Sandbox Code Playgroud)

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

这个数字0x6BF027632.

6 * 16^3 + 11 * 16^2 + 15 * 16^1 = 27632
24576    + 2816      + 240       = 27632
Run Code Online (Sandbox Code Playgroud)

  • @Luc第一个是正确的.虽然我经常看到`0xffffffff`等等.(`0xffffffff = -1`表示32位int假设2的补码) (7认同)
  • 我想知道的是,负数应该如何用十六进制表示?像-0xff或0x-ff?我猜第一个,但我不知道. (2认同)

Che*_*Alf 14

在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

干杯&hth.,


kni*_*ttl 9

这是一个十六进制数.

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


Sit*_*thu 7

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 
Run Code Online (Sandbox Code Playgroud)

要么

0x6400 = (0*1) + (0*16) + (4*256) + (6*4096) = 25600 
Run Code Online (Sandbox Code Playgroud)


loy*_*ola 6

简单

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

范例:

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

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

美好的一天,