请教各位大虾,从网络数据流中接受到的长度分别为2、5的byte数组如何转换为整型?

解决方案 »

  1.   

    数据流的格式?
    Big-Endian 还是 Little-Endian?
      

  2.   


    给说一下什么是Big-Endian和Little-Endian好吗?
    只知道一个数如果在内存中占两个byte,高地址的那个byte应该是数的低8位,低地址的那byte是数的高8位.这个是不是和Endian有关啊?
      

  3.   

    答:网络流传输肯定是:Big-Endian 。这是任何程序员写网络程序时就被教导要求这样做的。除非这个程序员有意违反大家的规定[可这样做(有意违反规定),它并没有得到任何好处,反而有坏处]
      

  4.   

    答:ByteArrayInputStream再包装成DataInputStream后用dis.readInt()读整数或其它如:dis.readShort(),dis.readLong()等等。
      

  5.   

    网络通信,有时候是要注意,高8位低8位的。
    因为不同的操作系统,或者软件系统,处理数据的机制不太相同。不过,好像绝大多数都用高8位滴。然后,回答楼主的问题。2Byte可以转换成int型的数据。5Byte要转换成long型的数据。
    还有,是否牵扯符号问题。
    如果不考虑符号位,那里,可以通过 移位运算 和 或运算 进行转换。