一个byte占8位,一个int占32位。

int 转byte时,需要&0xff,去掉前面的24位。因此当int是正数时,转出的byte可能是负数

byte转int时,需要&0xff,补足前面的24位。因此如果byte是负数,转成int时可能会变成整数。

package test;public class Byte_Int_Relation {/*** @param args*/public static void main(String[] args) {int x = -1234;System.out.println(intToByte(x));}/*** byte转int类型* 如果byte是负数,则转出的int型是正数* @param b* @return*/public static int byteToInt(byte b){System.out.println("byte 是:"+b);int x = b & 0xff;System.out.println("int 是:"+x);return x;}/*** int 类型转换为byte 类型* 截取int类型的最后8位,与 0xff* @param x* @return*/public static byte intToByte(int x){System.out.println("int 是:"+x);System.out.println("int的二进制数据为:"+Integer.toBinaryString(x));byte b =(byte) (x & 0xff);System.out.println("截取后8位的二进制数据为:"+Integer.toBinaryString(x & 0xff));System.out.println("byte 是:"+b);return b;}/** 把整数转换为字节数组:整数是32位,8位一个字节,依次读取8位,转化为字节数组* 整数与0xff,取得最后8位,生成整数,再强转为第3个byte* 整数右移8位,与0xff,取得倒数第二组8位,生成整数,再强转为第2个byte* 整数右移16位,与0xff,取得倒数第3组8位,生成整数,再强转为第1个byte* 整数右移24位,与0xff,取得倒数第4组8位,生成整数,再强转为第0个byte*/public static byte[] intToByteArr(int x){System.out.println("int 是:"+x);byte[] arr = new byte[4];arr[3]= (byte)(x & 0xff);arr[2]= (byte)(x>>8 & 0xff);arr[1]= (byte)(x>>16 & 0xff);arr[0]= (byte)(x>>24 & 0xff);System.out.print("转换后的字节数组是:");for(byte temp : arr){System.out.print(temp+" ");}System.out.println("");return arr;}/*** byte数组转换为整数* 第0个byte与上0xff,生成整数,在右移24位,取得一个整数* 第1个byte与上0xff,生成整数,在右移16位,取得一个整数* 第2个byte与上0xff,生成整数,在右移8位,取得一个整数* 第3个byte与上0xff,生成整数* 把四个整数做或操作,转换为已整数*/public static int byteArrToInt(byte[] arr){System.out.print("需要转换的字节数组是:");for(byte temp : arr){System.out.print(temp+" ");}System.out.println("");int x = ((arr[0] & 0xff) << 24 )|((arr[1]& 0xff) <<16 )|((arr[2] & 0xff)<<8)|(arr[3] & 0xff);System.out.println("转换后的整数是:"+x);return x;}}

java byte 和 int 转换相关推荐

  1. Java byte转换为int

    Java byte到Int的转换 Java byte到Int的转换有两种: 带符号转换,数值转换 无符号转换 byte本身是带正负符号的, 默认向上转换也是带符号 带符号转换 byte本身是带正负符号 ...

  2. java byte转int 互相转换原理详解

    转自:https://blog.csdn.net/wojiuai2093/article/details/50779879 int i = 0;   i += ((b[0] & 0xff) & ...

  3. java byte[] 文件流 转换成string是乱码_Java学习--IO(二)、多线程

    1.标准输入流 标准输入流是指从标准输入设备流向程序的数据. Java利用http://System.in来得到一个InputStream字节输入流 public static void main(S ...

  4. java byte转int原理_java中int与byte数组互转代码详细分析

    在java中,可能会遇到将int转成byte[]数组,或者将byte[]数组转成int的情况.下面我们来思考下怎么实现? 首先,分析int在java内存中的存储格式. 众所周知,int类型在内存中占4 ...

  5. byte 与 int 转换

    复习过程中,遇到的不太理解的地方 (byte)b & 0xff byte to int 比较下面两个 public static int byte2Int(byte b){return (in ...

  6. Java byte[]与List转换工具 | Java工具类

    目录 前言 Maven依赖 代码 总结 前言 其实这个工具是给自己写的,因为自己老是忘记.所以记录一下. Maven依赖 <dependency><groupId>com.go ...

  7. java byte数组 int,装修隐形门设计怎么做

    第一,门要和墙做一平,门还是要经常关闭状态. 第二:隐形门门锁的解决,同在一个家庭,在卧室休息,不小心孩子闯进来,也是不太好,装个锁也是必要的.如果是卫生间或者卧室门就有必要装个单面锁即隐型门锁--门 ...

  8. java编程int和byte的用法_Java中的Byte Array和Int转换

    Java中的Byte Array和Int转换 我有这两个函数有一些困难: byteArrayToInt和intToByteArray . 问题是,如果我使用另一个来得到另一个结果,结果是不同的,你可以 ...

  9. java byte数组转long_Java中byte、byte数组与int、long的转换详解

    一.Java 中 byte 和 int 之间的转换源码: //byte 与 int 的相互转换 public static byte intToByte(int x) { return (byte) ...

最新文章

  1. 对抗图像和攻击在Keras和TensorFlow上的实现
  2. 网络安全-Internet安全体系结构
  3. Vue采用input实现文件上传与删除
  4. 用python编写杨辉三角金字塔_用python实现三道简单算法题:杨辉三角,蛇形矩阵,金字塔...
  5. TOP互联网公司都在用,为什么SRE比传统运维更抢手?
  6. C语言 __VA_ARGS__ - C语言零基础入门教程
  7. 一文详解Python正则表达(3.X版本)
  8. Raphael学习笔记(4)--绘图(路径【贝塞尔曲线】)
  9. 路由器连接校园网(多个账号,单个账号)
  10. python爬取双色球历史数据_爬取双色球历史数据
  11. c++11多线程编程(十):packaged_task介绍与实例
  12. 电脑硬件升级完全解决方案
  13. 树莓派4B WIFI 物理网口设置固定IP方法
  14. 高等数学(第七版)同济大学 习题6-2 (前12题)个人解答
  15. 安卓海豚wii模拟器_dolphin模拟器安卓版
  16. Office 365 批量创建用户
  17. hive moving data报错,unable to move source...,yarn显示任务执行成功
  18. [TJOI2017]可乐(矩阵快速幂)
  19. 预约上门洗车小程序开发方案上门洗车系统定制开发汽车上门服务系统软件开发
  20. Android - 跳转到应用商店进行应用打分功能实现,安卓开发面试基础

热门文章

  1. 公司是否需要进行邓白氏编码申请?其实就看这几点
  2. Mysql explain 中的extra字段 解读
  3. 什么是Web3D?Web3D技术发展历程以及Web3D应用场景
  4. HDFS RBF支持多目标集群的挂载映射
  5. NVIDIA显卡smi如何释放被占用、卡住的内存
  6. Salt基础安装配置
  7. 神通数据库学习笔记001
  8. 利用antd tree组件实现类文件夹树(文件夹图标跟随树展开状态)
  9. 对象不支持此属性或方法: 'Response.CharSet'
  10. StarRocks理论介绍