Java 中 byte、byte 数组和 int、long 之间的转换

Java数值类型与byte数组相互转换 Java bytes数组与基本类型的相互转换 Int -> Bytes int64ToByte8 int48ToByte6 int40ToByte5 int32ToByte4 int24ToByte3 int16ToByte2 int8ToByte Bytes -> Int bytesToInt64 bytesToInt48 bytesToInt40 bytesToInt32 bytesToInt24 bytesToInt16 Uint -> Bytes unsignedInt64ToBytes unsignedInt48ToBytes unsignedInt40ToBytes unsignedInt32ToBytes unsignedInt24ToBytes unsignedInt16ToBytes unsignedInt8ToBytes Bytes -> Uint unsignedBytes2Int64 unsignedBytes2Int48 unsignedBytes2Int40 unsignedBytes2Int32 unsignedBytes2Int24 unsignedBytes2Int16 unsignedBytes2Int8 Float Double -- Bytes byte4ToFloat floatToByte4 byte8ToDouble doubleToByte8 立即下载

原文:  http://blog.youkuaiyun.com/defonds/article/details/8782785

Java 中 byte 和 int 之间的转换源码:

[java]  view plain  copy
 print ?
  1. //byte 与 int 的相互转换  
  2. public static byte intToByte(int x) {  
  3.     return (byte) x;  
  4. }  
  5.   
  6. public static int byteToInt(byte b) {  
  7.     //Java 总是把 byte 当做有符处理;我们可以通过将其和 0xFF 进行二进制与得到它的无符值  
  8.     return b & 0xFF;  
  9. }  

        测试代码:

[java]  view plain  copy
 print ?
  1. //测试 int 转 byte  
  2. int int0 = 234;  
  3. byte byte0 = intToByte(int0);  
  4. System.out.println("byte0=" + byte0);//byte0=-22  
  5. //测试 byte 转 int  
  6. int int1 = byteToInt(byte0);  
  7. System.out.println("int1=" + int1);//int1=234  

        Java 中 byte 数组和 int 之间的转换源码:

[java]  view plain  copy
 print ?
  1. //byte 数组与 int 的相互转换  
  2. public static int byteArrayToInt(byte[] b) {  
  3.     return   b[3] & 0xFF |  
  4.             (b[2] & 0xFF) << 8 |  
  5.             (b[1] & 0xFF) << 16 |  
  6.             (b[0] & 0xFF) << 24;  
  7. }  
  8.   
  9. public static byte[] intToByteArray(int a) {  
  10.     return new byte[] {  
  11.         (byte) ((a >> 24) & 0xFF),  
  12.         (byte) ((a >> 16) & 0xFF),     
  13.         (byte) ((a >> 8) & 0xFF),     
  14.         (byte) (a & 0xFF)  
  15.     };  
  16. }  

        测试代码:

[java]  view plain  copy
 print ?
  1. //测试 int 转 byte 数组  
  2. int int2 = 1417;  
  3. byte[] bytesInt = intToByteArray(int2);  
  4. System.out.println("bytesInt=" + bytesInt);//bytesInt=[B@de6ced  
  5. //测试 byte 数组转 int  
  6. int int3 = byteArrayToInt(bytesInt);  
  7. System.out.println("int3=" + int3);//int3=1417  

        Java 中 byte 数组和 long 之间的转换源码:

[java]  view plain  copy
 print ?
  1. private static ByteBuffer buffer = ByteBuffer.allocate(8);   
  2. //byte 数组与 long 的相互转换  
  3.    public static byte[] longToBytes(long x) {  
  4.        buffer.putLong(0, x);  
  5.        return buffer.array();  
  6.    }  
  7.   
  8.    public static long bytesToLong(byte[] bytes) {  
  9.        buffer.put(bytes, 0, bytes.length);  
  10.        buffer.flip();//need flip   
  11.        return buffer.getLong();  
  12.    }  

        测试代码:

[java]  view plain  copy
 print ?
  1. //测试 long 转 byte 数组  
  2. long long1 = 2223;  
  3. byte[] bytesLong = longToBytes(long1);  
  4. System.out.println("bytes=" + bytesLong);//bytes=[B@c17164  
  5. //测试 byte 数组 转 long  
  6. long long2 = bytesToLong(bytesLong);  
  7. System.out.println("long2=" + long2);//long2=2223  

        整体工具类源码:

[java]  view plain  copy
 print ?
  1. import java.nio.ByteBuffer;  
  2.   
  3.   
  4. public class Test {  
  5.       
  6.     private static ByteBuffer buffer = ByteBuffer.allocate(8);      
  7.   
  8.     public static void main(String[] args) {  
  9.           
  10.         //测试 int 转 byte  
  11.         int int0 = 234;  
  12.         byte byte0 = intToByte(int0);  
  13.         System.out.println("byte0=" + byte0);//byte0=-22  
  14.         //测试 byte 转 int  
  15.         int int1 = byteToInt(byte0);  
  16.         System.out.println("int1=" + int1);//int1=234  
  17.           
  18.           
  19.           
  20.         //测试 int 转 byte 数组  
  21.         int int2 = 1417;  
  22.         byte[] bytesInt = intToByteArray(int2);  
  23.         System.out.println("bytesInt=" + bytesInt);//bytesInt=[B@de6ced  
  24.         //测试 byte 数组转 int  
  25.         int int3 = byteArrayToInt(bytesInt);  
  26.         System.out.println("int3=" + int3);//int3=1417  
  27.           
  28.           
  29.         //测试 long 转 byte 数组  
  30.         long long1 = 2223;  
  31.         byte[] bytesLong = longToBytes(long1);  
  32.         System.out.println("bytes=" + bytesLong);//bytes=[B@c17164  
  33.         //测试 byte 数组 转 long  
  34.         long long2 = bytesToLong(bytesLong);  
  35.         System.out.println("long2=" + long2);//long2=2223  
  36.     }  
  37.       
  38.       
  39.     //byte 与 int 的相互转换  
  40.     public static byte intToByte(int x) {  
  41.         return (byte) x;  
  42.     }  
  43.       
  44.     public static int byteToInt(byte b) {  
  45.         //Java 总是把 byte 当做有符处理;我们可以通过将其和 0xFF 进行二进制与得到它的无符值  
  46.         return b & 0xFF;  
  47.     }  
  48.       
  49.     //byte 数组与 int 的相互转换  
  50.     public static int byteArrayToInt(byte[] b) {  
  51.         return   b[3] & 0xFF |  
  52.                 (b[2] & 0xFF) << 8 |  
  53.                 (b[1] & 0xFF) << 16 |  
  54.                 (b[0] & 0xFF) << 24;  
  55.     }  
  56.   
  57.     public static byte[] intToByteArray(int a) {  
  58.         return new byte[] {  
  59.             (byte) ((a >> 24) & 0xFF),  
  60.             (byte) ((a >> 16) & 0xFF),     
  61.             (byte) ((a >> 8) & 0xFF),     
  62.             (byte) (a & 0xFF)  
  63.         };  
  64.     }  
  65.   
  66.     //byte 数组与 long 的相互转换  
  67.     public static byte[] longToBytes(long x) {  
  68.         buffer.putLong(0, x);  
  69.         return buffer.array();  
  70.     }  
  71.   
  72.     public static long bytesToLong(byte[] bytes) {  
  73.         buffer.put(bytes, 0, bytes.length);  
  74.         buffer.flip();//need flip   
  75.         return buffer.getLong();  
  76.     }  
  77.   
  78. }  

        运行测试结果:
byte0=-22
int1=234
bytesInt=[B@de6ced
int3=1417
bytes=[B@c17164
long2=2223

参考文章1: http://stackoverflow.com/questions/7401550/how-to-convert-int-to-unsigned-byte-and-back 。
参考文章2: http://stackoverflow.com/questions/1936857/convert-integer-into-byte-array-java 。
参考文章3: http://stackoverflow.com/questions/4485128/how-do-i-convert-long-to-byte-and-back-in-java 。
独立游戏开发者必看:STEAM税务信息更新全流程(附中国区避坑指南) 本文为独立游戏开发者详细解析了Steam税务信息更新的全流程,重点针对中国区开发者提供了避坑指南。文章深入解释了W-8BEN表格的填写要点,并指导如何准备个人所得税纳税记录和身份证等核心证明文件,以确保顺利通过审核,避免收入被预扣税款。 阅读详情

相关推荐

基于boot + 双app升级方案

基于boot+双app的升级方案

weixin_44654285的博客 4515

java字节数组与基础类型的相互转换

java字节数组与基础类型的相互转换byte数组转int类型byte数组转为long类型byte数组转为String类型 byte数组转int类型 // byte 数组转为int类型 private static int byteArrayToInt(byte[] b) { return b[3] & 0xFF | (b[2] & 0xFF) << 8 | (b[1] & 0xFF) << 16 | (b[0] & 0xFF) << 24

芳 606

企业网络改造必看:如何用华为S5700三层交换机解决多部门隔离通信?

本文详细介绍了如何利用华为S5700三层交换机解决企业多部门网络隔离与通信需求。通过划分VLAN实现逻辑隔离,并配置三层路由实现受控互通,结合ACL进行精细访问控制,构建安全高效的企业网络。文章提供了从拓扑规划、地址分配到核心配置的完整实战指南。

weixin_29260291的博客 261

tointarray java_Java Util.byteArrayToInt方法代码示例

import sasc.util.Util; //导入方法依赖的package包/类public static void parseFCIADF(byte[] data, EMVApplication app) {if(data == null || data.length < 2){return;}BERTLV tlv = TLVUtil.getNextTLV(new ByteArrayI...

weixin_39920338的博客 516

手把手教你用SNAP做全极化SAR图像分类

引言 最近在研究极化SAR图像分类方面的内容,发现用SNAP软件可以很方便的实现图像的分类。因为在入门过程中踩了很多坑,浪费了一些时间,为了不让大家踩坑,所以决定写下这篇教程。 前期准备 软件下载 SNAP是欧空局旗下的一个SAR图像处理软件,可以点击下载地址进行下载。 数据下载 数据下载地址:https://mdacorporation.com/sample_data/RS2_OK76385_...

zz651044657的博客 1万+

mfcc总结,这个mel三角滤波器分组到底是如何起作用的呢?

先看fft频谱图(这是4096字节取样fft计算,横轴频率是从0到512,后边意义不大,未取,纵轴是振幅),那些我随便画的蓝色线,你有什么联想?: 再看,这绿色线,是否有一种上升后,便逐渐式微的感觉,都是三角形的,这或许也是mel当初和绝大多数人看到的: 如果在振幅上加上一条限制的黑线(振幅门槛限制),黑色线以下很多频率就没有意义了,你看,有用的频率连一半(512/2=256)都占不到...

ganggangwawa的博客 9908

byte数组与int相互转换

byte数组与int相互转换,在网络编程编解码中经常要用到类似的功能, 写了一个小工具。 使int与byte[]能相互转换 package chat; /** * @author is_zhoufeng */ public class ByteUtils { /** * byte数组转换为int * @param bs 字节数组 * @param bigEndi

is_zhoufeng的专栏 1245

ADS1115 0-10V高精度ADC模块原理图设计,已量产

在水质监测、智能气象站、环境感知等领域,0-10V 电压输出的传感器占据了重要地位。这类传感器输出信号稳定、抗干扰能力强,但对数据采集模块的精度、线性度和易用性提出了严苛要求。本文将深度解析一款专为 0-10V 传感器设计的高精度 ADC 模块,从硬件架构、性能指标到工程化实践,全面呈现其设计思路与核心价值。

不脱发的程序猿 276

java之byte[]long互相转换

今天在编程的时候遇到一个问题,我希望在socket传送的buffer之前增加我的信息,以便客户端可以获得额外的信息主要的问题有如下几个:1:java并不支持无符号数。2:网上的好多例子我试了都不好使。好了,闲话少说,上代码 测试环境:linux ubuntu 32bit(64位诸君,需要更改部分的数字,之后笔者可能会在64位机上面做测试,亲们请期待) 编辑环境:

w7762294的专栏 1778

基于ESP32Cam摄像头+YOLOv3完成图像识别_355

本项目正是在此背景下提出,设计一个基于ESP32Cam摄像头的图像识别系统,通过WIFI热点通信实现图像数据的传输,并利用上位机(Windows与Android平台的QT APP)实时显示原始图像与识别结果,实现目标检测、识别与标注功能。

595

WPF实现棋盘式图片切换效果

实现效果如下: 思路:在自定义控件中放置两个Image控件,点击前后翻页按钮时对图片进行裁剪,随机打乱顺序后添加动作。 步骤: 1、MyImageControl控件 /// <summary> /// MyImageControl.xaml 的交互逻辑 /// </summary> public partial class MyImageControl : UserControl { public static r

dnazhd的博客 1125

long类型值与bytes数组互转

每个人都有惰性,但不断学习是好好生活的根本,共勉!

感谢阅读 4641

Spine骨骼动画查看器 - Skeleton Viewer

骨骼动画是现代游戏和动画制作中常用的技术之一。Spine骨骼动画查看器(Skeleton Viewer)是一个官方提供的工具,用于查看和调试Spine骨骼动画。本文将介绍Skeleton Viewer的功能和使用方法,并提供相应的源代码示例。通过Skeleton Viewer,开发者可以直观地查看和调试Spine骨骼动画,包括骨骼结构、动画播放和事件触发等。这有助于提高骨骼动画的质量和效果,并加速开发过程。以上代码演示了如何使用Skeleton Viewer查看和播放Spine骨骼动画。

HsvvDatabase的博客 3461

java中byte数组和int,long,short之间的转换

public class ByteUtil {       /**       * 转换short为byte       *        * @param b       * @param s       *            需要转换的short       * @param index       */       public static void putShort

snmkc_csdn的博客 1703

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Java 中 byte byte 数组和 int long 之间的转换

Java 中 byte byte 数组和 int long 之间的转换

trigfj的博客 250

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

[转载]Java 中 byte、byte 数组和 int、long 之间的转换

 Java 中 byte 和 int 之间的转换源码:   [java] view plain copy    print? //byte 与 int 的相互转换   public static byte intToByte(int x) {       return (byte) x;   }      public static int byteToI...

whatisjava 133

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

上一篇: 一道阿里的java多线程题
下一篇: 【Linux】Ubuntu下C语言访问MySQL数据库入门
ly0303521
博客等级 码龄17年 135粉丝 90原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值