1、将字节数组转换成int类型
int byteToInt(byte[] b)
{
int mask = 0xff;
int temp = 0;
int n = 0;
for (int i = b.Length - 1; i >= 0; i–)
{
n <<= 8;
temp = b[i] & mask;
n |= temp;
}
return n;
}
2、int类型转字节数组
byte[] SIGMA_WRITE_REGISTER_INT(int writeValue)
{
byte[] hexVal = BitConverter.GetBytes(writeValue);
return hexVal;
}
3、字符串转INT型
int str2int(string data)
{
int value = 0;
byte[] byteData = new byte[4];
SplitData(data, ref byteData, 4);
int i = 0;
for (int j=3; j >=0; j–)
{
value |= byteData[i++] << j*8;
}
return value;
}
4、INT型转字符串
string int2str(int data)
{
string datastr = “”;
byte[] byteData = new byte[4];
int i = 0;
for (int j = 3; j>=0; j–)
{
byteData[i++] = (byte)(0xFF & (data >> (j * 8)));
}
for (int j = 0; j < 4; ++j)
{
datastr = String.Format("{0:G}{1:X2} ", datastr, byteData[j]);
}
return datastr;
}
5、拆分text到发送data数组
private int SplitData(string data, ref byte[] transData, int maxLen)
{
string[] dataArray = data.Split(’ ');
for (int i = 0; (i < maxLen) && (i < dataArray.Length); i++)
{
transData[i] = Convert.ToByte(dataArray[i].Substring(0, 2), 16);
}
return dataArray.Length;
}
6、单精度浮点数据转字符数组
byte[] SIGMA_WRITE_REGISTER_FLOAT(float writeValue)
{
byte[] hexVal = BitConverter.GetBytes(writeValue);
return hexVal;
}
7、字符数组转换成单精度浮点数据
float SIGMA_READ_REGISTER_FLOAT(byte [] hexVal)
{
return BitConverter.ToSingle(hexVal, 0);
}
数据类型转换之C#设计笔记(四)
于 2022-10-12 11:25:57 首次发布