我需要创建一个带有十六进制和int值的字节数组。
例如:
int value1 = 13;
int value2 = 31;
byte[] mixedbytes = new byte[] {0x09, (byte)value1, (byte)value2};
问题:31转换为0x1F。它应该是0x31。我试图将int值转换为字符串并返回字节,但这并没有解决问题。整数从不超过两位数。
答案 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);