小弟现在想用java编一个串口通讯程序,但是java的byte类型的范围和VC的不同,是-126-127,发送数据的时候前面可以用(byte)强制转换,可接收的时候怎么转啊,我试过+256,但是有的时候数据是错的,肯定的方法用错了,哪位大哥能给解答一下,不胜感激。

解决方案 »

  1.   

    恩, java不支持无符号, 你最好用 char 来处理吧。
      

  2.   

    char不能与串口进行信息交互。
      

  3.   

    int n = byte & 0xff;
      

  4.   

    byte的范围是-128到127. 所以你是不能直接存0-255的,但是可以用一个简单的转换:
    byte i = (byte)129; //129已经超过byte的范围。
    System.out.println(i);  //所以129当成补码就是-127
    System.out.println(i & 255); //这里就还原为129了
      

  5.   

    扩展成int型..
    int a = 0x000000FF & bytedata;你可以看看这篇帖子:http://topic.csdn.net/u/20080911/19/d276790a-38fe-46d4-b717-d966e249e8d9.html