C# byte word 变量负值的ToString转换

分类:.Net知识问答| 发布:camnprbubuol| 查看: | 发表时间:2011/3/31

最近抽空写个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就得自己先转换一下。

365据说看到好文章不转的人,服务器容易宕机
原创文章如转载,请注明:转载自郑州网建-前端开发 http://camnpr.com/
本文链接:http://camnpr.com/archives/296.html