如何将字节数组转换为十六进制字符串,反之亦然?

2023-11-22

如何将字节数组转换为十六进制字符串,反之亦然?


您可以使用Convert.ToHexString从 .NET 5 开始。
还有一种反向操作的方法:Convert.FromHexString.


对于旧版本的 .NET,您可以使用:

public static string ByteArrayToString(byte[] ba)
{
  StringBuilder hex = new StringBuilder(ba.Length * 2);
  foreach (byte b in ba)
    hex.AppendFormat("{0:x2}", b);
  return hex.ToString();
}

or:

public static string ByteArrayToString(byte[] ba)
{
  return BitConverter.ToString(ba).Replace("-","");
}

还有更多的变体,例如here.

反向转换将如下所示:

public static byte[] StringToByteArray(String hex)
{
  int NumberChars = hex.Length;
  byte[] bytes = new byte[NumberChars / 2];
  for (int i = 0; i < NumberChars; i += 2)
    bytes[i / 2] = Convert.ToByte(hex.Substring(i, 2), 16);
  return bytes;
}

Using Substring是与以下组合的最佳选择Convert.ToByte. See 这个答案了解更多信息。如果你需要更好的性能,你必须避免Convert.ToByte在你可以放下之前SubString.

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

如何将字节数组转换为十六进制字符串,反之亦然? 的相关文章

  • SharpZipLib - 将文件夹/目录添加到 zip 存档

    通过示例 我很好地掌握了如何提取 zip 文件 几乎在每个示例中 识别 ZipEntry 是否为目录的方法如下 string directoryName Path GetDirectoryName theEntry Name string
  • 在Application_AquireRequestState事件中用POST数据重写Url

    我有一个在其中注册路线的代码Application AcquireRequestState应用程序的事件 注册路由后 我会在 Http 运行时缓存中设置一个标志 这样我就不会再次执行路由注册代码 在此事件中注册路线有特定原因Applicat
  • 为什么这个函数指针赋值在直接赋值时有效,但在使用条件运算符时无效?

    本示例未使用 include 在 MacOS10 14 Eclipse IDE 上编译 使用 g 选项 O0 g3 Wall c fmessage length 0 假设这个变量声明 int fun int 这无法通过 std touppe
  • 如何在编译C代码时禁用警告?

    我正在使用 32 位 Fedora 14 系统 我正在使用编译我的源代码gcc 有谁知道如何在编译c代码时禁用警告 EDIT 是的 我知道 最好的办法是修复这些警告以避免任何未定义 未知的行为 但目前在这里 我第一次编写了巨大的代码 并且在
  • 是否有像 gccxml 这样的用于生成包装器的 C 标头解析器工具?

    我需要为一种新的编程语言编写一些 C 标头包装器 并且想要类似 gccxml 的东西 但不完全依赖 gcc 以及它在 Windows 系统上带来的问题 只需要读C而不是C 只要有完整的文档记录 任何格式的输出都可以 Linux Solari
  • 如何使用 wpf webbrowser 将数据发布到 Web 服务器

    我想从数据库获取数据并使用它来让用户登录到网站 我有一个包含 Web 浏览器控件的 wpf 页面 我有这样的代码 用于将用户登录到用 php 编写的网站
  • 单线程公寓问题

    从我的主窗体中 我调用以下命令来打开一个新窗体 MyForm sth new MyForm sth show 一切都很好 但是这个表单有一个组合框 当我将其 AutoCompleteMode 切换为建议和追加时 我在显示表单时遇到了这个异常
  • 默认值 C# 类 [重复]

    这个问题在这里已经有答案了 我在控制器中有一个函数 并且我收到表单的信息 我有这个代码 public Actionresult functionOne string a string b string c foo 我尝试将其转换为类似的类
  • 指向字节数组的指针

    由于 Misra C 的要求 我的一位同事想要使用指针声明 但我遇到了一些问题 Misra 安全关键指南 不会让我们纯粹的程序员使用指针 但会让我们对数组字节进行操作 他打算获取一个指向字节数组的指针 因此我们不会在堆栈上传递实际的数组 T
  • 手动将 ClientBase 集合类型从 Array[] 更改为 List<>

    我将自己的 WCF 代理与 Client Base 一起使用 我想做一些类似于 svc util 中的 ct 属性的操作 并告诉代理返回 List 集合类型 我不能使用 List 因为实体由 nhibernate 管理 所以我必须使用 IL
  • .NET JIT 编译的代码缓存在哪里?

    NET 程序首先被编译为 MSIL 代码 当它被执行时 JIT编译器会将其编译为本机机器代码 我想知道 这些JIT编译的机器代码存储在哪里 它只存储在进程的地址空间中吗 但由于程序的第二次启动比第一次快得多 我认为即使在执行完成后 该本机代
  • 如何使用收益返回和递归获得字母的每个组合?

    我有几个像这样的字符串列表 可能有几十个列表 1 A B C 2 1 2 3 3 D E F 这三个仅作为示例 用户可以从几十个具有不同数量元素的类似列表中进行选择 再举个例子 这对于用户来说也是一个完全有效的选择 25 empty 4 1
  • 相当于 C# 中 Java 的“ByteBuffer.putType()”

    我正在尝试通过从 Java 移植代码来格式化 C 中的字节数组 在 Java 中 使用方法 buf putInt value buf putShort buf putDouble 等等 但我不知道如何将其移植到 C 我尝试过 MemoryS
  • 如何访问窗口?

    我正在尝试使用其句柄访问特定窗口 即System IntPtr value Getting the process of Visual Studio program var process Process GetProcessesByNam
  • 如何将对象转换为传递给函数的类型?

    这不会编译 但我想做的只是将对象转换为传递给函数的 t public void My Func Object input Type t t object ab TypeDescriptor GetConverter t ConvertFro
  • 使用 Chrome 和 Selenium 设置 LocalStorage

    我正在尝试使用 OpenQA Selenium 和 Chrome 设置本地存储键和值 我认为这相当微不足道 但我似乎无法让它发挥作用 我对 C 很陌生 所以我可能错过了一些东西 无论如何 我有这个功能 public static void
  • 如何设置 CMake 与 clang 交叉编译 Windows 上的 ARM 嵌入式系统?

    我正在尝试生成 Ninja makefile 以使用 Clang 为 ARM Cortex A5 CPU 交叉编译 C 项目 我为 CMake 创建了一个工具链文件 但似乎存在错误或缺少一些我无法找到的东西 当使用下面的工具链文件调用 CM
  • JavaScript 数组中的负索引是否会影响数组长度?

    在javascript中我定义了一个像这样的数组 var arr 1 2 3 我也可以做 arr 1 4 现在如果我这样做 arr undefined 我也失去了对值的引用arr 1 所以对我来说 从逻辑上来说 arr 1 也是arr 但是
  • c# 模拟 IFormFile CopyToAsync() 方法

    我正在对一个异步函数进行单元测试 该函数将 IFormFile 列表转换为我自己的任意数据库文件类列表 将文件数据转换为字节数组的方法是 internal async Task
  • 无法使 Polly 超时策略覆盖 HttpClient 默认超时

    我正在使用 Polly 重试策略 并且正如预期的那样 在重试过程中HttpClient达到 100 秒超时 我尝试了几种不同的方法来合并 Polly 超时策略 将超时移至每次重试而不是总计 但 100 秒超时仍然会触发 我读过大约 5 个

随机推荐

  • 在 Google Colab 上使用最新的 Python 版本

    Google Colab 安装了 Python 3 6 但它不是当前版本的 Python 我该如何在 Google Colab 上将 Python 升级到最新版本 常见问题解答说 Colaboratory 支持 Python 2 7 和 P
  • 在 Linux 上构建和使用用于 C++ 的纯 llvm 工具链

    假设这是可能的 有人可以告诉我 我如何配置 cmake 构建以在 ubuntu 16 04 上创建一个 纯 llvm 工具链 其中包括 clang lld libc libc abi libunwind llvm 编译器 rt 任何其他可能
  • 避免窗口获得焦点

    我正在使用虚拟键盘 问题是当我按下虚拟键盘上的按键时 需要发送数据的窗口会失去焦点 我怎样才能避免这种情况 当键盘窗体接收焦点时 它接收的部分消息是失去焦点的窗口的句柄 wParam 执行您需要执行的操作 并将焦点设置回失去焦点的窗口 编辑
  • 实数 - 如何确定是否需要 float 或 double?

    给定一个真实值 我们可以检查是否float数据类型足以存储数字 或者double是必须的 我知道精度因架构而异 是否有任何 C C 函数可以确定正确的数据类型 有关背景 请参阅每个计算机科学家都应该了解的浮点运算知识 不幸的是 我认为没有任
  • style,格式化切片运算符

    PEP 8没有提到切片运算符 据我了解 与其他运算符不同 它不应该被空格包围 spam 3 5 OK spam 3 5 NOT OK 当使用复杂的表达式时 这是否成立 即哪种风格被认为更好 1 spam ham 66 3 44 eggs 2
  • 如何实例化不同版本的 InternetExplorerDriver - Selenium 2?

    只是想知道如何实例化不同版本的 InternetExplorerDriver 这就是我创建 IE 驱动程序的方法 WebDriver ieWebDriver new InternetExplorerDriver 但我无法区分 IE6 IE7
  • Java中如何计算整数的尾随零? (例如:234000 => 3 个零)

    标题几乎是不言自明的 1232 gt 0 1231030 gt 1 2000 gt 3 34444400000 gt 5 如果它适合一个int long 只需检查模 10 的数字是否为 0 并保留一个计数器 long x if x 0 re
  • 如果我将变量“close”全局定义为“0”,为什么它会被记录为“false”?

    我知道这一定是非常基本的东西 但我不明白范围是如何工作的 我想要closed变量在整个 JavaScript 文件中都是已知的 我有类似的东西 在 jQuery 中 var closed 0 function console log clo
  • Youtube Iframe 没有全屏按钮

    也许是星期五下午 但由于某种原因 我似乎无法在嵌入的 Youtube 视频上显示全屏按钮 我所做的只是复制从 Youtube 视频生成的共享代码 例如使用这段代码http jsfiddle net chricholson v8sjL I s
  • java 正则表达式中捕获组的行为混乱

    In this answer我推荐使用 s replaceFirst 0 d 0 1 但有两个人抱怨结果包含字符串 null 例如 23 null 这可以解释为 1 i e group 1 being null 可以通过以下方式进行转换St
  • 如何在java中创建合成字段?

    如何在 Java 中创建合成字段 java中的合成字段只能在运行时创建吗 如果没有 在编译时是否有符合标准的方法 无需更改类文件中的某些字节 当语言的 奇怪之处 需要它们时 它们是由编译器创建的 一个简单的例子是使用内部类 public c
  • PhP中如何检查mysql条目是否为空?

    这是我从表中回显的描述变量 description mysql result result i description 有时第 i 条记录是空的并且没有任何数据 没有描述 我想要做的是对空记录回显 没有可用的描述 if isset desc
  • ROAuth 不再使用 httr? [推特API]

    我在 AWS Ubuntu Server 12 04 2 LTS 上运行 R Studio 并通过浏览器访问 R Studio 当我尝试使用该包在 Twitter API 上进行身份验证时ROAuth与代码 credential lt OA
  • Angular 2 - 带有 formControlName 的 ng-bootstrap 下拉菜单

    有没有办法使ng bootstrap 下拉控件使用 Angular 反应形式 Given div class d inline block div
  • 在 iOS 中的特定时间唤醒应用程序

    我需要构建一个具有闹钟功能的应用程序 这意味着用户将能够设置应用程序唤醒并执行某些操作的时间 我看到我可以发布并捕获本地推送通知 但我需要在应用程序唤醒时运行一些代码 iOS 提供这种行为吗 谢谢 不可以 您无法在本地唤醒应用程序 但在 i
  • 如何从二维数组中删除重复项? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我有一个二维数组 7 3 7 3 3 8 7 3 7 3 1 2 有什么聪明的方法可以从中删除重复的元素吗 它应该返回这样的数组 7 3 3 8 1 2 Thanks arr 7 3
  • 为什么Java中没有静态类

    我是java新手 当我查看语言规范时 我发现不能声明静态类 但我们可以拥有静态内部类 我有点困惑为什么我们不能拥有顶级静态类 如果我想创建一个仅包含实用方法的类 我可以选择静态类 Java 开发人员限制此功能的原因是什么 这不是限制 你可以
  • 覆盖 var 上的 setter

    一个小问题 希望有一个小答案 我有一个var在我的班级中 每当设置时都需要触发某种更新 我知道一个var隐式地获取两个方法 一个 getter 和一个 setter 是否可以以某种方式重写 setter 方法以确保触发更新 而不需要递归 我
  • 如何实施 Authorize.NET 托管支付 iFrame 和 Laravel

    我发现 Authorize NET 提供的官方文档和 github 示例是一堆非常混乱的东西 你不需要 这篇文章是对过去几个小时工作的总结 希望对其他人有所帮助 本指南假设您不需要收据页面 并且希望在成功付款后自动让用户继续前进 网站后端是
  • 如何将字节数组转换为十六进制字符串,反之亦然?

    如何将字节数组转换为十六进制字符串 反之亦然 您可以使用Convert ToHexString从 NET 5 开始 还有一种反向操作的方法 Convert FromHexString 对于旧版本的 NET 您可以使用 public stat