[英]C#: Create an byte array with int and hex values
我需要用十六进制和整数值创建一个字节数组。
例如:
int value1 = 13;
int value2 = 31;
byte[] mixedbytes = new byte[] {0x09, (byte)value1, (byte)value2};
问题:31转换为0x1F。 它应该是0x31。 我试图将int值转换为字符串,然后再转换回字节,但这并不能解决问题。 整数不得超过两位数。
尝试这个:
int value1 = 0x13;
int value2 = 0x31;
byte[] mixedbytes = new byte[] { 0x09, (byte)value1, (byte)value2 };
另外,您似乎不了解十进制和十六进制之间的转换。 十进制的31是十六进制的1F,期望更好地理解十进制和十六进制之间的转换是不好的期望,请在此处查看: http : //www.wikihow.com/Convert-from -十进制到十六进制
我想你可以试试这个方法
string i = "10";
var b = Convert.ToByte(i, 16)
在这种方法中10将被存储为0x10
这种格式通常称为二进制编码的十进制(BCD)。 这个想法是字节中的每个半字节都包含一个十进制数字。
在C#中,您可以非常轻松地进行此转换:
var number = 31;
var bcd = (number / 10) * 16 + (number % 10);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.