C#:使用int和hex值创建一个字节数组

时间:2016-05-26 06:11:01

标签: c# .net arrays

我需要创建一个带有十六进制和int值的字节数组。

例如:

int value1 = 13;
int value2 = 31;
byte[] mixedbytes = new byte[] {0x09, (byte)value1, (byte)value2};

问题:31转换为0x1F。它应该是0x31。我试图将int值转换为字符串并返回字节,但这并没有解决问题。整数从不超过两位数。

3 个答案:

答案 0 :(得分:2)

试试这个:

helper bean

另外,您似乎不了解十进制和十六进制之间的转换。十进制的31是十六进制的1F,期望它是十六进制的31是一个不好的期望,以更好地理解十进制和十六进制之间的转换,请看这里:http://www.wikihow.com/Convert-from-Decimal-to-Hexadecimal

答案 1 :(得分:0)

我认为你可以尝试这种方法

[['apple', 'orange', 'pineapple'], ['sugar', 'salt', 'pepper', 'vinegar']]
  

在此方法中,10将存储为0x10

答案 2 :(得分:0)

这种格式通常称为二进制编码十进制(BCD)。这个想法是字节中的半字节每个都包含一个十进制数字。

在C#中,您可以非常轻松地进行此转换:

var number = 31;
var bcd = (number / 10) * 16 + (number % 10);