1.byte转换为int
在Java语言中,byte 和 int都是有符号的,它们的数值都是用补码做计算的。
byte的数值范围是:-128 ~ +127 。高位为1表示负数,0表示正数。
如果在业务中遇到传输的数据是无符号的,就会存在问题。比如远程设备给我们传过来一个0xfe的数据:
0xfe,无符号的时候表示的是254,二进制为 11111110 。但是在Java程序里面,0xfe在byte中的值却表示的是-2 ,这就会出现问题。
如果用int数据类型来放0xfe,是没问题的。因为int虽然也是有符号的,但是它的表示范围为-2147483648到+2147483647,足够表示0xfe的值。
于是我们就需要byte转换为int做处理,需要注意的是,Java中扩展字节符号默认是不变的,也就是说高位补位全是1,需要做符号处理:

byte b = 0xfe;
int i = b;
i = i & 0xFF;

2.int转换为long
如果表示的范围超过了int的范围,同样也需要扩展,但是验证后发现使用&0xFFFFFFFF的方式并没用,需要使用其他的方法:

int k1 = 0xfeffffff;
long k11 = (k1 >>> 24) * 256 * 256 * 256L + ((k1 >>> 16) & 0xFF) * 256 *256 + ((k1 >>> 8) & 0xFF) *256 + (k1 & 0xFF);

或者

int k1 = 0xfeffffff;
long k12 = (k1 >>> 24) * 256 * 256 * 256L + (k1 & 0xFF0000) + (k1 & 0xFF00) + (k1 & 0xFF);

都可以实现正确地扩容,原来表示的无符号数据值可以保持相同的值。

Java中:byte转换为int ,int转换为long相关推荐

  1. java整型转换为数组_基于java中byte数组与int类型的转换(两种方法)

    java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送.者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形 ...

  2. java中byte数组与int类型的转换(两种方式)

    java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送.者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形 ...

  3. java short to byte_java笔记 Java中byte数组与int,long,short,char间的转换

    package com.util; public class ByteUtil { /** * 转换short为byte * * @param b * @param s * 需要转换的short * ...

  4. Java中byte[]数组和int之间的转换

    在最近的项目中需要用到byte[]和int互转,找了一些资料选了其中感觉蛮不错的一种解决方法记录一下. 转自:http://blog.csdn.net/sunnyfans/article/detail ...

  5. java 36 进制_数学-在Java中如何将十进制数转换为以36为底的数字?

    数学-在Java中如何将十进制数转换为以36为底的数字? 如果我有一个十进制数字,如何在Java中将其转换为以36为基数? slavoj asked 2020-07-13T23:15:07Z 10个解 ...

  6. java中char类型转换成int类型的两种方法

    java中char类型转换成int类型的两种方法 方法一: 第一种利用Integer包装类的方法Integer.parseInt Copychar ch = '9'; if (Character.is ...

  7. java中byte, iso-8859-1, UTF-8,乱码的根源

    本文作者:@Ryan Miao 本文链接:https://www.cnblogs.com/woshimrf/p/java-utf8-iso-charset.html 版权声明: 本博客所有文章除特别声 ...

  8. Java中byte与16进制字符串的互相转换

    https://www.cnblogs.com/qinwangchen/p/5418028.html * Convert byte[] to hex string.这里我们可以将byte转换成int, ...

  9. Java中byte[]与十六进制之间的转化

    Java中byte是占8位二进制,十六进制的数是用4位二进制来表示的.因此当byte转十六进制时,将byte的8位二进制,分为高4位和低4位并分别转化为相应的十六进制,再合到一起即可.当十六进制转by ...

  10. java byte(字节_【原创】Java中Byte字节流处理的自定义方法库2

    1.把整型转换成指定长度的数组字节流 public static byte[] int2bytes(int integer, int len) { //   if (integer < 0) { ...

最新文章

  1. java中自造类是什么意思_Java建造者模式是什么?如何实现?(附代码)
  2. @responseBody java_java-如何使用@ResponseBody从Spring Controller返回JSON数据
  3. 设置控件全局显示样式appearance proxy
  4. Android 的 init.rc 文件简介【转】
  5. JPA注解实现one-to-one的主键关联映射
  6. Failedto load class org.slf4j.impl.StaticLogger...
  7. MySQL两种存储引擎: MyISAM和InnoDB
  8. HDFS的操作SHELL和API
  9. Maven:IDEA 使用maven 下载源码包
  10. Iview的Tabs定时切换
  11. 关于java多线程堆和栈的共享问题
  12. 【学习笔记】如何理解Raft中的ReadIndex?
  13. 此版本专旧版本为android,关于Android9.0 此应用专为旧版Android打造,因此可能无法正常运行。请尝试检查更新或与开发者联系...
  14. 应用密码学(张仕斌)第四章
  15. SpringBoot个人学习
  16. 国内外物联网平台大全
  17. 【高级篇 / ZTNA】(7.0) ❀ 01. FortiClient EMS 下载与安装 ❀ FortiGate 防火墙
  18. 零基础学大数据分析现实吗
  19. PHP——人人都会编程
  20. 编写一个自我介绍python_简单的个人简历的自我介绍怎么写

热门文章

  1. 代码审查(Code Review)的本质
  2. Few-shot Action Recognition with Prototype-centered Attentive Learning阅读笔记
  3. 10进制整型转16进制整型?
  4. 使用MATLAB画SCI论文图
  5. 防止安卓手机进入休眠状态 cpu停止 导致应用死掉
  6. substr截取函数 笔记
  7. Layui方法渲染数据表格
  8. 说说O2O(2):O2O和二维码
  9. 技术人员如何成为技术领域专家
  10. 数据库设计之规范化和反规范化