为什么二进制指南与通常的表示不同

发布于 2024-10-17 11:27:36 字数 276 浏览 5 评论 0原文

我有以下 Guid:

AAB13E97-449B-4D5B-BDE2-AC479C31B782

使用 System.Guid + DbLinq + SQLite 来存储它,以下字段将添加到数据库中。

973EB1AA-9B44-5B4D-BDE2-AC479C31B782

(为了清楚起见,添加了破折号)

我可以看到最后 8 个字节的顺序相同,前 3 个组是相反的,但我不明白为什么。

I have the following Guid:

AAB13E97-449B-4D5B-BDE2-AC479C31B782

Using System.Guid + DbLinq + SQLite to store it the following field is added to the database.

973EB1AA-9B44-5B4D-BDE2-AC479C31B782

(Dashes added for clarity)

I can see that the last 8 bytes are in the same order, and the 3 first groups are reversed, but I don't understand why.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

忘年祭陌 2024-10-24 11:27:36

看看维基百科关于该主题的文章,它说:

Data4 以与 GUID 文本编码中显示的顺序相同的顺序存储字节(见下文),但其他三个字段在小端系统(例如 Intel CPU)上相反。

所以我的结论是:

  • 这种情况的发生与所使用的 DBMS 或框架无关
  • 这取决于处理器架构
  • 这是设计使然

所以问题依然存在:

他们到底为什么这样设计?

Looking at Wikipedia's article on the subject it says:

Data4 stores the bytes in the same order as displayed in the GUID text encoding (see below), but the other three fields are reversed on little-endian systems (for example Intel CPUs).

So I conclude:

  • This happens independently from the DBMS or framework used
  • This depends on the processor architeture
  • This is by design

So the question remains:

Why on earth they designed it this way?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文