获取数据的时候用int不就好了

解决方案 »

  1.   

    我是指那个字节的值,它最大可以是FF了,就是255的值了,这样,我读到byte[]中就会出错了。用int是没问题了,可InputStream中只有几个read方法,就一个read(byte[] b)这个方法可以一下将数据读到byte数组中,用int还没想好具体怎么处理它
      

  2.   

    int byte;
    for(int i=0;i<b.length;i++)
    {
      if(b[i]<0)
        byte=255+b[i];
      else
        byte=b[i];
    }
      

  3.   

    java中的byte是没有数值大小的概念的,它是原始的字节码,它可以存储任何形式的8位二进制数。
    只有象int,float这样的类型才有数据表示范围的限制。如byte的值可以为10000000,如果你把它转为int,则int值表示-128,取第一位为符号位,补码表示。
      

  4.   

    可以这样
    if(b[i]<0)
    byte= (b[i]&0x7f)|0x80;
    else
    byte=b[i];
      

  5.   

    启发一下. import java.io.*;
    import java.lang.*;public class Area {  public Area() {
      }  public static void main(String args[]) throws Exception {
        InputStreamReader inputstreamreader = new InputStreamReader(System.in);
        BufferedReader bufferedreader = new BufferedReader(inputstreamreader);
        System.out.print("Enter the radius: ");
        String s = bufferedreader.readLine();
        Double double1 = new Double(s);
        double d = double1.doubleValue();
        System.out.println("The area of a circle of radius " + d);
        double d1 = Math.PI * d * d;
        System.out.println(" is " + d1);
      }
    }