java中只有 int型 而没有 unsign integer 和 signed之分。我现在遇到个问题,一个文件转变成  inputstream后
原来的 8bit  16 bit,32bit unsigned integer 和 signed integer
应该如何转成 java中的基本数据类型?现在别人告诉我下面的规则,但是我不会转,请大家帮忙
                                   java 类型
8bit unsigned integer  --->      short
8bit signed integer  --->        byte
16bit unsigned integer  --->     int
16bit signed integer  --->      short
32bit unsigned integer  --->     long
32bit signed integer  --->      int另外inputstream中的字节如何转成 float感谢大家帮忙

解决方案 »

  1.   

    其实就是增加位数。
    比如8位无符号整数可以表示0~255,11111111表示255,而到java中,如果用byte表示的话,这个值就成为-127了,所以我们可以使用short来表示,
    0000 0000 1111 1111。你可以参考java.io.DataInputStream这个类的设计。
    比如public final int readUnsignedByte()
    这个方法,读一个字节的无符号整数,结果使用一个int来表示。
    读取无符号short的方式也类似,
    public final int readUnsignedShort()只要结果类型(这里是int)能够包含无符号数表示的范围即可。处理的时候注意大小尾问题。
      

  2.   

    字节流 怎么转成float啊 
      

  3.   

    你可以直接用java.io.DataInputStream读你的文件,这样方法都是现成的。或者用jni转一下
    union {
            int i;
            float f;
        } u;