1.将ASCII码转换成十进制数
byte[] array = System.Text.Encoding.ASCII.GetBytes (lpshDeviceValue.ToString());
string ASCIIstr2 = null;
for (int i = 0; i < array.Length; i++)
{
int asciicode = (int)(array[i]);
ASCIIstr2 += Convert.ToString(asciicode);
}
lpshDeviceValue是ASCII码,经转换byte[] array存入的是对应的十进制值。
2.将十进制数转换成ASCII码
DisplayData = lpshDeviceValue.ToString("X"); //十进制转换成十六进制
byte [] array = new byte[(DisplayData.Length+1)/2];
int index = ((DisplayData.Length + 1) / 2)-1; //PLC中输入与显示的顺序相反,所以这块index从最后一位开始
for (int i = 0; i < DisplayData.Length; i += 2)
{
array[index] = Convert.ToByte(DisplayData.Substring(i, 2),16);
index--;
}
DisplayData = Encoding.Default.GetString(array);