c# - 高效的十六进制操作

标签 c# hex

我有一个由十六进制值表示的字节数组,这些是持续时间。数据可以转换为整数值并乘以一个常数以获得时间。数据的解码将作为一系列十六进制字符串保存到文件中。什么是处理十六进制值的有效方法?


我一直在研究处理数据格式时的性能问题,因为我必须在不同阶段(计算、数据显示等)处理不止一种格式。大多数示例显示了从 byte[] 到十六进制字符串(“1A 3C D4”)的转换,反之亦然,但我一直在寻找替代方法,即转换为 Int16 并使用 char[] 数组。

最佳答案

您没有表示十六进制值的字节数组。您有一个表示数字 的字节数组。您表示数字的基数仅在您表示数字时才有意义

换句话说:如果您认为字节数组代表十进制整数,您认为它会有什么不同?如果我用英尺和英寸而不是米来表示高度,我的高度会有所不同吗?

现在,如果您尝试表示 16 位数字,我建议使用字节数组是个坏主意。请改用 ushort[]short[],因为它们 16 位值。如果您在将数据放入这样的数组中时遇到问题,请提供详细信息......同样,如果您在操作方面遇到任何其他问题。请注意,在您将数据写成文本之前,就计算机而言,实际上并没有关于它位于哪个基数的概念。

(请注意,这对于浮点值是不同的,其中数据在小数和 double 之间确实是不同的,例如......在那里,表示的基础是数据格式。它不适用于整数。或者,您可以将所有整数视为二进制,直到您决定将它们格式化为文本...)

关于c# - 高效的十六进制操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3632991/

相关文章:

c# - 为什么不在 VB.NET 的 Web 服务参数中公开 List(Of String)?

c# - 在 Azure Function 中运行 .exe 可执行文件

c# - 在 WPF 中的用户控件上创建可绑定(bind)属性的正确方法是什么?

java - 将 RGBA 值转换为十六进制颜色代码

mysql - 将表中的一列转换为十六进制,并使其余数据保持不变

c# - 如果我想填充到 4 个字节,Little Endian 和 Big Endian 看起来如何?

c# - 如何根据复选框状态更改列表框选择,反之亦然?

c# - 将字符串(十六进制)转换为十进制会导致异常

c++ - 遍历十六进制/prop_id 值

javascript - 将八进制和十六进制数转换为基数 10