【问题标题】:Reading byte arrays读取字节数组
【发布时间】:2016-06-22 12:33:52
【问题描述】:

我正在阅读async file i/o。写入文件时,微软将 bufferSize 设置为 4096 字节,但读取时使用 [0x1000]。我知道这会像将 bufferSize 设置为 4096 一样评估为 4k 块。我的问题是他们为什么要使用十六进制值而不是整数?

【问题讨论】:

  • 我不知道如何理解这个问题;整数值 4096(十进制表示)正好是 1000(十六进制表示)。你的问题是为什么有时使用十进制表示,有时使用十六进制表示?
  • 它们使用整数,只是十六进制表示法。至于为什么,在这种情况下,它是一种风格选择。使用十六进制表示法有很多优点,例如Why use hex?
  • 这是一个简单的常量。您可以通过多种方式定义相同的常量值,为程序选择哪种方式绝对无关紧要,但它可能对人类阅读源有用,例如使用位操作时,常量1 << 101024 更清晰(它说“第10 位设置”)。真正重要的是价值,但你不是在问它。

标签: c#


【解决方案1】:

从实际的角度来看,没有区别。它们本质上是相同的值。但是,您可能知道,计算机倾向于更好地处理 2 的幂。 0x1000 只是倾向于比 4096 更清晰地呈现这个想法。

这与您使用十六进制而不是十进制值分配标志值的原因相同。它让读者清楚地看到,它的值不是一个巧合的十六进制数字,而是经过深思熟虑的。也就是说,当它完全不相关时,不要使用十六进制。

int numberOfCats = 0xA7;

希望有帮助!

【讨论】:

  • 所以答案是“计算机往往处理得更好”?
  • @Sinatr 不,它是“计算机程序员倾向于处理得更好”。计算机处理更好的部分是谈论 2 的幂,而不是使用十六进制数字。
  • @Sinatr 不,技术上不。计算机并不关心您分配的数量是否等于完整的内存页面、内存页面的 3/4,或者您是否正在通过 BIOS 进行写入。然而,二的幂更好处理。
猜你喜欢
  • 2011-07-01
  • 1970-01-01
  • 2015-06-26
  • 1970-01-01
  • 1970-01-01
  • 2016-01-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多