最近抽空写个C#应用FOCAS1函数的FANUC 18M通过TCP/IP读取机床参数的功能,结果发现读到的负值用简单的 byte.ToString()和word.ToString()方法得不到正确的负值,经过多次改写代码和测试,实现byte word 变量负值的ToString准确转换的代码如下: if (paramater_type == 1) //byte { if (sign == 1) //变量符号标志1为无符号数据 { mystring = ((ushort)byte).ToString(); } else { mystring = ((byte & 128) != 0) ? (byte - 255 - 1) : byte.ToString(); } } else if (paramater_type == 2) //word { if (sign == 1) //变量符号标志1为无符号数据 { mystring = ((UInt16)word).ToString(); } else { mystring = (word & 0x8000) != 0) ? word : word.ToString(); } } word的负数可以直接赋值到mystring,byte就得自己先转换一下。