//将data字节型数据转换为0~65535 (0xFFFF 即 WORD)。 public static int getUnsignedByte(short data){ return data&0x0FFFF ; }
转成有符号数据就直接强行转换就好了 short s1 = (short)(Short.MAX_VALUE + 2); int a = s1 & 0xFFFF; //有符号short转无符号int short s2 = (short)a; //无符号int转有符号short,直接强行转换即可 System.out.printf("%d, %d, %d\n", s1, a, s2); int和long之前也如此 int n1 = Integer.MAX_VALUE + 2; long l = n1 & 0xFFFFFFFFL; //有符号int转无符号long int n2 = (int)l; //无符号long转有符号int,直接强行转换即可 System.out.printf("%d, %d, %d\n", n1, l, n2);
java中的int跟short 本身就是自带符号的 所以根本就不用转...这些有符号跟无符号的转换 你看看考虑下使用位运算
51,397
社区成员
85,846
社区内容
加载中
试试用AI创作助手写篇文章吧