我正在接收有关车速的数据。我无法控制输入格式,但我确实需要使用数据。
数据作为 Base64 编码值发送给我。显然,数据一开始是小端格式的数字。目前,我的代码是这样的:
public int b64ToInt(string Input){
byte[] Output = Convert.FromBase64String(Input);
Array.Reverse(Output);
if (Output.Length == 1)
{
return (int)Output[0];
}
else if (Output.Length == 2)
{
return (int)BitConverter.ToInt16(Output, 0);
}
else
{
return BitConverter.ToInt32(Output, 0);
}
}
这适用于我收到的大多数值,但不是全部。顺便说一句,要将这个值转换为 MPH,我需要除以 1150.78。
以下值有效:AAB6Qg== 转换为 27.19720537374 MPH。
以下值不起作用: AA09 显然,输出数组的长度是 3 个字节,我不知道如何处理这种情况。
我得到的错误消息是:“目标数组不够长,无法复制集合中的所有项目。检查数组索引和长度。”