-4

Microsoft が "エラー コード" を 16 進値で報告する傾向があるのはなぜですか?

エラー コードは 32 ビットのダブル ワード値 (4 バイト値) です。これは、エラーを報告した C スタイルの関数の生の整数リターン コードである可能性があります。

しかし、なぜエラーを 16 進数でユーザーに報告するのでしょうか? 「0x」プレフィックスは意味がなく、文字長の節約は最小限です。これらのエラーは、Microsoft ソフトウェアや Microsoft Web サイトでエンド ユーザーに表示されることになります。

例えば:

  • 0x80302010 は 10 文字の長さで、非常に不可解です。
  • 2150637584 は 10 進数に相当し、はるかにユーザーフレンドリーです。

エラー コード メカニズムとしての 32 ビット フィールドの「標準的な」使用 (開発者の解釈のためにフィールドを複数のフィールドに分割する可能性があります)、またはエンド ユーザーに 16 進コードを提示する背後にあるロジックについての説明はありますか?

4

3 に答える 3

3

その理由については推測するしかないため、この質問には確実に答えることはできません。しかし、推測してみましょう:

理由の 1 つは、16 進数の場合、数字が 8 桁になることがわかっているためです。数字が多かれ少なかれある場合、番号は「破損」しています (たとえば、顧客の入力ミスなど)。10 進数では、同じ値の桁数が異なります。

また、開発者にとって、16 進数は 10 進数よりも便利で自然です。たとえば、一部の情報がビット フラグとしてコード化されている場合、16 進数では手動で簡単に解読できますが、10 進数では解読できません。

于 2012-04-03T20:49:14.377 に答える
3

16 進数と 10 進数のどちらのエラー コードが使いやすいかについては、少し主観的です。これは、16 進数のエラー コードが最初に使用される理由の一部である可能性があります。

Active Directory サービス インターフェイスの Win32 エラー コードのドキュメントを検討してください。ADSI は、Win32 エラー コードにマップされる DWORD 値に対応する0x8007XXXX形式のエラー コードを使用します。XXXX

これにより、対応する Win32 エラー コードを非常に簡単に取得できます。これは、最後の 4 桁を削除するだけで済むためです。これは、10 進数のエラー コード表現では不可能です。

于 2012-04-03T20:53:45.543 に答える
0

これに対する中間的な答えは、IPv4 アドレスのように数字をフォーマットすると、開発者を助ける何らかのフォーマットを維持しながら、より使いやすくなるということです。

TBHは16進数で問題ないと思いますが、技術に詳しくない架空のユーザーは、0x1234ABCDが1234101112または「fwipバルブのガングルピンのひび」よりも何を意味するのかわかりません。

于 2012-10-15T12:03:45.603 に答える