首页 > 代码库 > java 无符号byte转换
java 无符号byte转换
java中的byte类型是有符号的,值得范围是-128-127
做网络通讯时,接收过来的数据往往都是无符号的byte,值得范围是0-255
因此直接转换时,存储到java显示的值就会有问题
int ori=200;System.out.println("原始byte值:"+ori);Byte b=(byte)ori;System.out.println("java中byte值:"+b);Integer i=b.intValue();System.out.println("转换后的int值:"+i); System.out.println("存储的2进制值:"+Integer.toBinaryString(i));Integer i_trans=i&0xFF;System.out.println("&0xFF后的:"+i_trans);
输出如下:
原始byte值:200java中byte值:-56转换后的int值:-56存储的2进制值:11111111111111111111111111001000200
例如接收到一个无符号的byte,值200,转到java中的byte,转换后就是-56,因此显示就不正确,需要将服务号的转成有符号的
计算方法就是与0xFF做一个&运算,也就是与11111111做一个&计算即可
java 无符号byte转换
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。