为什么 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++中实现模板类协变?

    是否可以以这样一种方式实现类模板 如果模板参数相关 一个对象可以转换为另一个对象 这是一个展示这个想法的例子 当然它不会编译 struct Base struct Derived Base template
  • 如何在没有 Control.Invoke() 的情况下从后台线程修改控件属性

    最近 我们遇到了一些旧版 WinForms 应用程序 我们需要更新一些新功能 在专家测试该应用程序时 发现一些旧功能被破坏 无效的跨线程操作 现在 在您认为我是新手之前 我确实有一些 Windows 窗体应用程序的经验 我不是专家 但我认为
  • C# 中可空类型是什么?

    当我们必须使用nullable输入 C net 任何人都可以举例说明 可空类型 何时使用可空类型 https web archive org web http broadcast oreilly com 2010 11 understand
  • 使用 C# 在 WinRT 中获取可用磁盘空间

    DllImport kernel32 dll SetLastError true static extern bool GetDiskFreeSpaceEx string lpDirectoryName out ulong lpFreeBy
  • 写入和读取文本文件 - C# Windows 通用平台应用程序 Windows 10

    有用 但在显示任何内容之前 您必须在文本框中输入内容 我想那是因为我使用了 TextChanged 事件处理程序 如果我希望它在没有用户交互的情况下显示文本文件的内容 我应该使用哪个事件处理程序 因此 我想在按下按钮时将一些数据写入 C W
  • C# 用数组封送结构体

    假设我有一个类似于 public struct MyStruct public float a 我想用一些自定义数组大小实例化一个这样的结构 在本例中假设为 2 然后我将其封送到字节数组中 MyStruct s new MyStruct s
  • 基于范围的 for 循环中的未命名循环变量?

    有没有什么方法可以不在基于范围的 for 循环中 使用 循环变量 同时也避免编译器发出有关未使用它的警告 对于上下文 我正在尝试执行以下操作 我启用了 将警告视为错误 并且我不想进行像通过在某处毫无意义地提及变量来强制 使用 变量这样的黑客
  • 在 ASP.Net Core 2.0 中导出到 Excel

    我曾经使用下面的代码在 ASP NET MVC 中将数据导出到 Excel Response AppendHeader content disposition attachment filename ExportedHtml xls Res
  • A* 之间的差异 pA = 新 A;和 A* pA = 新 A();

    在 C 中 以下两个动态对象创建之间的确切区别是什么 A pA new A A pA new A 我做了一些测试 但似乎在这两种情况下 都调用了默认构造函数 并且仅调用了它 我正在寻找性能方面的任何差异 Thanks If A是 POD 类
  • 使用安全函数在 C 中将字符串添加到字符串

    我想将文件名复制到字符串并附加 cpt 但我无法使用安全函数 strcat s 来做到这一点 错误 字符串不是空终止的 我确实设置了 0 如何使用安全函数修复此问题 size strlen locatie size nieuw char m
  • Windows 窗体不会在调试模式下显示

    我最近升级到 VS 2012 我有一组在 VS 2010 中编码的 UI 测试 我试图在 VS 2012 中启动它们 我有一个 Windows 窗体 在开始时显示使用 AssemblyInitialize 属性运行测试 我使用此表单允许用户
  • Windows 10 中 Qt 桌面应用程序的缩放不当

    我正在为 Windows 10 编写一个简单的 Qt Widgets Gui 应用程序 我使用的是 Qt 5 6 0 beta 版本 我遇到的问题是它根本无法缩放到我的 Surfacebook 的屏幕上 这有点难以判断 因为 SO 缩放了图
  • 网络参考共享类

    我用 Java 编写了一些 SOAP Web 服务 在 JBoss 5 1 上运行 其中两个共享一个类 AddressTO Web 服务在我的 ApplycationServer 上正确部署 一切都很顺利 直到我尝试在我的 C 客户端中使用
  • 检查 url 是否指向文件或页面

    我们需要以下内容 如果文件确实是文件 则从 URL 下载该文件 否则 如果它是一个页面 则什么也不做 举个简单的例子 我有以下命令来下载文件 My Computer Network DownloadFile http www wired c
  • 什么是 C 语言的高效工作流程? - Makefile + bash脚本

    我正在开发我的第一个项目 该项目将跨越多个 C 文件 对于我的前几个练习程序 我只是在中编写了我的代码main c并使用编译gcc main c o main 当我学习时 这对我有用 现在 我正在独自开展一个更大的项目 我想继续自己进行编译
  • 在Linux中使用C/C++获取机器序列号和CPU ID

    在Linux系统中如何获取机器序列号和CPU ID 示例代码受到高度赞赏 Here http lxr linux no linux v2 6 39 arch x86 include asm processor h L173Linux 内核似
  • Bing 地图运行时错误 Windows 8.1

    当我运行带有 Bing Map 集成的 Windows 8 1 应用程序时 出现以下错误 Windows UI Xaml Markup XamlParseException 类型的异常 发生在 DistanceApp exe 中 但未在用户
  • 如何在 C# 中播放在线资源中的 .mp3 文件?

    我的问题与此非常相似question https stackoverflow com questions 7556672 mp3 play from stream on c sharp 我有音乐网址 网址如http site com aud
  • 如何将字符串“07:35”(HH:MM) 转换为 TimeSpan

    我想知道是否有办法将 24 小时时间格式的字符串转换为 TimeSpan 现在我有一种 旧时尚风格 string stringTime 07 35 string values stringTime Split TimeSpan ts new
  • 如何连接字符串和常量字符?

    我需要将 hello world 放入c中 我怎样才能做到这一点 string a hello const char b world const char C string a hello const char b world a b co

随机推荐

  • 用于在用户填写后隐藏 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