-4

为什么微软倾向于将“错误代码”报告为十六进制值?

错误代码是 32 位双字值(4 字节值)。这可能是任何 C 样式函数报告错误的原始整数返回代码。

但是,为什么要以十六进制向用户报告错误?“0x”前缀毫无价值,节省的字符长度也很少。这些错误最终会在 Microsoft 软件甚至 Microsoft 网站上显示给最终用户。

例如:

  • 0x80302010 有 10 个字符长,非常神秘。
  • 2150637584 是十进制等价物,对用户更友好。

是否有任何描述将 32 位字段作为错误代码机制的“标准”使用(可能将字段划分为多个字段以供开发人员解释)或向最终用户呈现十六进制代码背后的逻辑?

4

3 回答 3

3

关于十六进制或十进制错误代码是否对用户更友好,这有点主观。这是十六进制错误代码明显更方便的场景,这可能是首先使用十六进制错误代码的部分原因。

考虑Active Directory 服务接口的 Win32 错误代码文档,ADSI 使用格式为 的错误代码0x8007XXXX,其中XXXX对应于映射到 Win32 错误代码的 DWORD 值。

这使得获取相应的 Win32 错误代码变得非常容易,因为您只需去掉最后 4 位数字即可。这对于十进制错误代码表示是不可能的。

于 2012-04-03T20:53:45.543 回答
3

我们只能猜测原因,所以这个问题不能肯定回答。但是让我们猜测一下:

一个原因可能是使用十六进制数字,您知道该数字将有 8 位数字。如果它有更多或更少的数字,则该数字是“损坏的”(例如,客户输入错误)。对于十进制数,相同值的位数会有所不同。

此外,对于开发人员来说,十六进制数字比十进制数字更方便和自然。例如,如果某些信息被编码为位标志,您可以轻松地以十六进制数字手动破译它们,而不是十进制数字。

于 2012-04-03T20:49:14.377 回答
0

对此的中间答案是,将数字格式化为 IPv4 地址会更加方便用户,同时保留某种有助于开发人员的格式。

虽然 TBH 我认为十六进制很好,但假设的非技术用户不知道 0x1234ABCD 的含义比 1234101112 或“fwip 阀上的破裂角销”更多。

于 2012-10-15T12:03:45.603 回答