繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM