为什么 Guid.ToByteArray() 以这种方式对字节进行排序?

2023-12-30

你打电话时ToByteArray()在 .NET 中的 GUID 上,与 GUID 的字符串表示形式相比,结果数组中的字节顺序不是您所期望的。例如,对于以下表示为字符串的 GUID:

11223344-5566-7788-9900-aabbccddeeff

的结果ToByteArray()这是:

44, 33, 22, 11, 66, 55, 88, 77, 99, 00, AA, BB, CC, DD, EE, FF

请注意,前四个字节的顺序是相反的。此外,字节 4 和 5 也被交换,字节 6 和 7 也被交换。但最后 8 个字节的顺序与字符串中表示的顺序相同。

我知道这种情况正在发生。我想知道为什么 .NET 以这种方式处理它。

作为参考,您可以看到一些对此的讨论和困惑(错误归因于 Oracle 数据库)here https://stackoverflow.com/questions/2667740/convert-byte-array-from-oracle-raw-to-system-guid and here https://stackoverflow.com/questions/7289734/convert-from-oracles-raw16-to-nets-guid.


如果您阅读了GUID 构造函数的示例部分 http://msdn.microsoft.com/en-us/library/3573497s.aspx,你会找到答案:

Guid(1,2,3,new byte[]{0,1,2,3,4,5,6,7})创建一个对应于的 Guid"00000001-0002-0003-0001-020304050607".

a是一个32位整数,b是一个16位整数,c是一个 16 位整数,并且d只是8个字节。

Because a, b, and c是整数类型而不是原始字节,因此在选择如何显示它们时受字节顺序的影响。这GUID 的 RFC (RFC4122) http://www.ietf.org/rfc/rfc4122.txt指出它们应该以大端格式呈现。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 Guid.ToByteArray() 以这种方式对字节进行排序? 的相关文章

  • 用于检查类是否具有运算符/成员的 C++ 类型特征[重复]

    这个问题在这里已经有答案了 可能的重复 是否可以编写一个 C 模板来检查函数是否存在 https stackoverflow com questions 257288 is it possible to write a c template
  • 查找c中结构元素的偏移量

    struct a struct b int i float j x struct c int k float l y z 谁能解释一下如何找到偏移量int k这样我们就可以找到地址int i Use offsetof 找到从开始处的偏移量z
  • Asp.NET WebApi 中类似文件名称的路由

    是否可以在 ASP NET Web API 路由配置中添加一条路由 以允许处理看起来有点像文件名的 URL 我尝试添加以下条目WebApiConfig Register 但这不起作用 使用 URIapi foo 0de7ebfa 3a55
  • 为什么当实例化新的游戏对象时,它没有向它们添加标签? [复制]

    这个问题在这里已经有答案了 using System Collections using System Collections Generic using UnityEngine public class Test MonoBehaviou
  • BitTorrent 追踪器宣布问题

    我花了一点业余时间编写 BitTorrent 客户端 主要是出于好奇 但部分是出于提高我的 C 技能的愿望 我一直在使用理论维基 http wiki theory org BitTorrentSpecification作为我的向导 我已经建
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • Clang 3.1 + libc++ 编译错误

    我已经构建并安装了 在前缀下 alt LLVM Clang trunk 2012 年 4 月 23 日 在 Ubuntu 12 04 上成功使用 GCC 4 6 然后使用此 Clang 构建的 libc 当我想使用它时我必须同时提供 lc
  • 如何从 appsettings.json 文件中的对象数组读取值

    我的 appsettings json 文件 StudentBirthdays Anne 01 11 2000 Peter 29 07 2001 Jane 15 10 2001 John Not Mentioned 我有一个单独的配置类 p
  • 将 VSIX 功能添加到 C# 类库

    我有一个现有的单文件生成器 位于 C 类库中 如何将 VSIX 项目级功能添加到此项目 最终目标是编译我的类库项目并获得 VSIX 我实际上是在回答我自己的问题 这与Visual Studio 2017 中的单文件生成器更改 https s
  • C#中如何移动PictureBox?

    我已经使用此代码来移动图片框pictureBox MouseMove event pictureBox Location new System Drawing Point e Location 但是当我尝试执行时 图片框闪烁并且无法识别确切
  • C++ OpenSSL 导出私钥

    到目前为止 我成功地使用了 SSL 但遇到了令人困惑的障碍 我生成了 RSA 密钥对 之前使用 PEM write bio RSAPrivateKey 来导出它们 然而 手册页声称该格式已经过时 实际上它看起来与通常的 PEM 格式不同 相
  • 将多个表映射到实体框架中的单个实体类

    我正在开发一个旧数据库 该数据库有 2 个具有 1 1 关系的表 目前 我为每个定义的表定义了一种类型 1Test 1Result 我想将这些特定的表合并到一个类中 当前的类型如下所示 public class Result public
  • 重载<<的返回值

    include
  • 如何在整个 ASP .NET MVC 应用程序中需要授权

    我创建的应用程序中 除了启用登录的操作之外的每个操作都应该超出未登录用户的限制 我应该添加 Authorize 每个班级标题前的注释 像这儿 namespace WebApplication2 Controllers Authorize p
  • 这些作业之间是否存在顺序点?

    以下代码中的两个赋值之间是否存在序列点 f f x 1 1 x 2 不 没有 在这种情况下 标准确实是含糊不清的 如果你想确认这一点 gcc 有这个非常酷的选项 Wsequence point在这种情况下 它会警告您该操作可能未定义
  • 覆盖子类中的字段或属性

    我有一个抽象基类 我想声明一个字段或属性 该字段或属性在从该父类继承的每个类中具有不同的值 我想在基类中定义它 以便我可以在基类方法中引用它 例如覆盖 ToString 来表示 此对象的类型为 property field 我有三种方法可以
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • 基于 OpenCV 边缘的物体检测 C++

    我有一个应用程序 我必须检测场景中某些项目的存在 这些项目可以旋转并稍微缩放 更大或更小 我尝试过使用关键点检测器 但它们不够快且不够准确 因此 我决定首先使用 Canny 或更快的边缘检测算法 检测模板和搜索区域中的边缘 然后匹配边缘以查
  • C++ 中类级 new 删除运算符的线程安全

    我在我的一门课程中重新实现了新 删除运算符 现在我正在使我的代码成为多线程 并想了解这些运算符是否也需要线程安全 我在某处读到 Visual Studio 中默认的 new delete 运算符是线程安全的 但这对于我的类的自定义 new

随机推荐

  • 用于在用户填写后隐藏 ploneformgen 表单的 Python 脚本。 (对于 Plone-4.3.2-64。)

    用户填写了 ploneformgen 表单后 我想使用自定义脚本适配器调用 python 脚本来更改用户的本地角色 以便他们不再看到该表单 换句话说 我想防止用户两次填写 或查看 表单 我认为执行此操作的一种方法是调用位于表单文件夹中的脚本
  • Excel VBA - 循环转置

    我有一定范围的数据 以下是示例数据 PAT PID 0 Min 3001 PAT PID 0 Mean 3754 PAT PID 0 Max 4542 CAT PID 1 Min 15004 CAT PID 1 Mean 15040 CAT
  • 我可以在 iPhone 应用程序中为 UIToolBar 提供自定义背景吗?

    是否可以为 UIToolBar 提供图像的自定义背景 而不是通常的蓝色 黑色淡出 我尝试为视图提供背景并设置 UIToolBar 的不透明度 但这也会影响其上任何 UIBarButtons 的不透明度 在这里回答我自己的问题 重写drawR
  • 如何使用 jQuery 更改选择选项上的元素类[重复]

    这个问题在这里已经有答案了 我想改变我的class value 使用 jQuery 选择选项 Example
  • 在直方图上添加数据标签 Python/Matplotlib

    我正在尝试在直方图顶部添加数据标签值 以尝试明显地显示频率 这是我现在的代码 但不确定如何编码以将值放在上面 plt figure figsize 15 10 plt hist df Age edgecolor white label d
  • 从 OnClick 中关闭 AlertDialog.Builder

    我正在尝试为用户弹出一个对话框 该对话框的主体中有两个按钮 底部有一个取消按钮 当用户单击两个按钮之一时 对话框将消失 点击 取消 只会取消对话框 取消部分工作正常 但我不知道如何手动关闭对话框 这是我的代码 public void onI
  • Eclipse 拼写检查器 - 如何删除添加的单词?

    我不小心在 Eclipse 的拼写检查词典中添加了一个我一直拼写错误的单词 我怎样才能把它再次取出来 Eclipse 将您添加的单词放入文本文件中 又称用户定义词典 您可以在以下位置找到该文件的位置窗口 gt 首选项 gt 常规 gt 编辑
  • 测量图像中像素之间的欧几里德距离的算法

    我有许多图像 其中我知道焦距 像素数 尺寸和位置 来自 GPS 它们都是采用高倾斜方式 用市售相机在地面上拍摄的 计算图像中某些像素之间的欧几里得距离的最佳方法是什么 如果确实可以的话 假设您不是在寻找完整的景观建模 而是在寻找简单的近似模
  • Protocol buffer3 和 json

    Protocol buffer v3 声称该库是 json 友好的 https developers google com protocol buffers docs proto3 json https developers google
  • JS 对象 null 检查 - 奇怪的 JS 问题[重复]

    这个问题在这里已经有答案了 想象一下这个简单的场景 我有一个变量 它可以是带有一个属性 ID 的普通 JS 对象 即一个数字或 obj 变量可以为 null 我有简单的 test 函数 它检查变量是否不为 null 并且它必须具有有效的 i
  • 使用 phpunit 时,Eloquent 查询范围返回 Builder 而不是 Model

    我有以下代码 user User findByAccountCode transaction gt account code 当我在 phpunit 上执行此代码时 它返回 Illuminate Database Eloquent Buil
  • 删除包含一组字符的类

    有没有办法删除开始或包含已定义文本字符串的类 我有几个用于背景颜色覆盖的类 bg bgwhite bgblue bgyellow 我为选择框设置了一个小 jquery 用于添加和删除元素的修改类 在本例中是 a href href 标签 我
  • 如何使用 beautifulSoup 访问 span? [复制]

    这个问题在这里已经有答案了 我想获取嵌套标签内的数字 我该怎么做 我的代码输出这个 但我想得到 40 而不是整两行 span class rankings score span 40 span 这是我的代码 from bs4 import
  • r中大量图的排列并用线连接

    我有大量的小地块需要放置在更大的地块画布中 并将小地块排列成并用线条连接它们 一个小例子如下所示 A 到 L 是独立图 给出了它们的放置坐标 绘图网格坐标 PlotgridX和plotgridY可以决定小图何时需要居中 plotcord l
  • 在react-redux中@connect装饰器有什么用

    我正在学习 React 并遵循一些教程 我遇到了这段代码 import React from react import TodosView from components TodosView import TodosForm from co
  • MP MediaLibrary DidChangeNotification 调用了两次?

    我的应用程序使用 iPodMusicPlayer 当暂停时 用户可能会出去并在 Apple 的音乐应用程序中进行更改 例如创建或修改播放列表 然后返回到我的应用程序 我收到了预期的 MPMediaLibraryDidChangeNotifi
  • 哈希有_key?句法

    我有三个哈希值 a key value b key gt value c key gt value 这些结果 a has key key gt false b has key key gt true c has key key gt fal
  • vue.js:如何处理同一元素上的 click 和 dblclick 事件

    我有一个 vue 组件 其中包含单独的 click dblclick 事件 单击 取消 选择行 双击打开编辑表单 ul class data row 这样做 我会在双击时触发 3 个事件 两次单击事件 最后一次双击事件 由于单击事件首先触发
  • 如何将文本从 iOS Notes 应用程序导出到我的应用程序?

    我知道这是可能的 并且是许多大型应用程序所做的事情 但我无法在 UTI 扩展 UIActivityTypes 等中找出我需要特别使用的拼写 我正在尝试将我的应用程序添加到当您点击 iOS 上的 便笺 应用程序中的 导出 按钮时出现的应用程序
  • 为什么 Guid.ToByteArray() 以这种方式对字节进行排序?

    你打电话时ToByteArray 在 NET 中的 GUID 上 与 GUID 的字符串表示形式相比 结果数组中的字节顺序不是您所期望的 例如 对于以下表示为字符串的 GUID 11223344 5566 7788 9900 aabbccd