将java的byte转成无符号数

  1. byte a = (byte)234;
  2. System.out.println(a);

 

上面的代码,结果是-22,因为java中byte是有符号的,byte范围是-128~127。

如果想输出234,该怎么做呢,首先想到的是将a 赋给大一点的类型,如下:

 

[java][/java] 
  1. byte a = (byte)234;
  2. System.out.println(a);
  3. int i = a;
  4. System.out.println(a);

执行后,还是-22,因为int也是有符号的,所以a赋给i时,a的符号位在i中成为了i的符号位。

 

最后网上找了下面这种方法,成功输出234:

 

[java][/java]  
  1. byte a = (byte)234;
  2. System.out.println(a);
  3. int i = a;
  4. System.out.println(a);
  5. i = a&0xff;
  6. System.out.println(i);

标签