【问题标题】:Declaring an array with a hexadecimal number用十六进制数声明数组
【发布时间】:2015-05-22 02:32:40
【问题描述】:

以十六进制格式声明大小的数组有什么好处? 编译器是否比十进制数字更快地将十六进制转换为二进制?

例如:

int array [0x1480];  
int array0[5248];
sizeof(array)/sizeof(*array) == sizeof(array0)/sizeof(*array0) //simply a true statement

【问题讨论】:

  • 一点也不。这纯粹是一个程序员认为十六进制表示法以某种方式提高了可读性。
  • @aruisdante 发布与答案相同的帖子!
  • 由于编译器必须为十六进制常量处理 6 个字符,而为十进制常量只处理 4 个字符,处理十六进制将比处理十进制稍微慢一些(但无法衡量)。但是,这两种表示法都没有“真正的”性能优势。这对程序员来说是一个符号方便的问题。据推测,十六进制常量是比十进制更好的选择是有原因的(尽管不清楚为什么选择该值,无论是十六进制还是十进制)。

标签: c++ arrays hex


【解决方案1】:

一点也不。这纯粹是一个程序员认为十六进制表示法在某种程度上提高了可读性。

【讨论】:

    【解决方案2】:

    C++ 中的 const 可以表示为十进制、八进制和十六进制文字。 详情请见http://www.cplusplus.com/doc/tutorial/constants/

    所以下面的数字是相同的:

    5248    // decimal
    0x1480  // hex
    012200  // octal
    

    【讨论】:

    • 这并没有真正解决 OP 的问题,即如果在某些情况下使用十六进制文字实际上 maters
    • 它说他们是相同,你为什么认为这不是一个答案?
    猜你喜欢
    • 1970-01-01
    • 2018-05-17
    • 1970-01-01
    • 2015-01-21
    • 1970-01-01
    • 2021-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多