【问题标题】:What do numbers using 0x notation mean?使用 0x 表示法的数字是什么意思?
【发布时间】:2012-01-01 11:38:49
【问题描述】:

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

const int shared_segment_size = 0x6400;

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

【问题讨论】:

  • 搜索“十六进制表示法”
  • @asawyer 谢谢。在我选择十六进制的“0x”之前,我不知道从哪里搜索。
  • 搜索0x prefix C++ 会将您带到这里 :)

标签: c integer hex notation


【解决方案1】:

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

因此,0x400 = 4×(162) + 0×(161) + 0×(160) = 4 ×((24)2) = 22 × 28 = 210 sup> = 1024,或一个二进制 K。

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

【讨论】:

    【解决方案2】:

    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
    

    【讨论】:

    • 我想知道的是,负数应该如何用十六进制表示?像 -0xff 还是 0x-ff?我猜是第一个,但我不知道。
    • @Luc 第一个是正确的。虽然更多时候我只看到0xffffffff 等。 (0xffffffff = -1 用于 32 位 int 假设 2 的补码)
    • @Luc 负数使用 2 的补码以二进制表示 - 一种不需要“-”符号的聪明方法。所以,它基本上是从二进制转换为十六进制,负数或正数。
    • @ShuvoSarker 感谢您的加入!不过,这只是内存表示,我想类似于如果我们同意我们有一组从 0--999​​ 的数字并且 1000--1999 将代表负数。我的问题是关于人类可读的符号,虽然知道计算机是如何做到的可能对其他人有帮助,所以谢谢:)
    【解决方案3】:

    这是一个十六进制数。

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

    【讨论】:

      【解决方案4】:

      简单

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

      示例:

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

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

      早安,

      【讨论】:

        【解决方案5】:

        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 
        

        【讨论】:

          猜你喜欢
          • 2018-07-31
          • 2011-12-31
          • 2017-03-02
          • 2018-04-24
          • 2013-05-28
          • 2013-11-02
          • 2014-11-28
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多