将10进制的字符串转为16进制的byte

时间:2022-05-26 17:53:44

直接将string类型的字符转为16进制的byte出现错误:超出表示范围:

            //一个十进制的字符串
string str = "10";
//将十进制的字符串表示10进制的数值
int a = Convert.ToInt16(str, 10);
//为16进制的字符
string str2 = a.ToString("x2");

//将16进制的字符表示成0xXX byte
byte aa = Convert.ToByte(("0x" + str2), 16);

//放入到byte[]数组中
byte[] byte={aa};



采用的方式:先将string转为10进制的字符,将10进制的数字转为byte,存放在byte[ ]

           int byteUp = Convert.ToInt32(textBox_Up.Text);
int byteDown = Convert.ToInt32(textBox_Down.Text);
int byteLeft = Convert.ToInt32(textBox_Left.Text);
int byteRight = Convert.ToInt32(textBox_Right.Text);
int byteCenter = Convert.ToInt32(textBox_Center.Text);


int[] data = { byteUp, byteDown, byteLeft, byteRight, byteCenter };

byte b1 = Convert.ToByte(byteUp);
byte[] data1 = { Convert.ToByte(byteUp), Convert.ToByte(byteDown), Convert.ToByte(byteLeft),
Convert.ToByte(byteRight), Convert.ToByte(byteCenter) };

//byte byteUp = Convert.ToByte(textBox_Up.Text, 16);
//byte byteDown = Convert.ToByte(textBox_Down.Text, 16);
//byte byteLeft = Convert.ToByte(textBox_Left.Text, 16);
//byte byteRight = Convert.ToByte(textBox_Right.Text, 16);
//byte byteCenter = Convert.ToByte(textBox_Center.Text, 16);
//byte[] data={byteUp,byteDown,byteLeft,byteRight,byteCenter};//这种方式显示超出范围

string str1 = "";
for (int i = 0; i < data1.Length; i++)
{
str1 += data[i].ToString("X2") + " ";
}
textBox1.Text = str1;
}