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

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

测试代码:

  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 之间的转换源码:

  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. public static byte[] intToByteArray(int a) {
  9. return new byte[] {
  10. (byte) ((a >> 24) & 0xFF),
  11. (byte) ((a >> 16) & 0xFF),
  12. (byte) ((a >> 8) & 0xFF),
  13. (byte) (a & 0xFF)
  14. };
  15. }

测试代码:

  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 之间的转换源码:

  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. public static long bytesToLong(byte[] bytes) {
  8. buffer.put(bytes, 0, bytes.length);
  9. buffer.flip();//need flip
  10. return buffer.getLong();
  11. }

测试代码:

  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

整体工具类源码:

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

运行测试结果:
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

Java 中 byte、byte 数组和 int、long 之间的转换的更多相关文章

  1. C++string,char* 字符数组,int类型之间的转换

    string.int 常见类型之间相互转换 int & string 之间的转换 C++中更多的是使用流对象来实现类型转换 针对流对象 sstream实现 int,float 类型都可以实现 ...

  2. Java中的基本数据类型和基本数据类型之间的转换

    在Java中有8中基本数据类型,分别为: 整型: byte.short.int.long 浮点型:float.double 布尔型:boolean 字符型:char. byte:    8位,  封装 ...

  3. java中的字符,字符串,数字之间的转换

    string 和int之间的转换 string转换成int  :Integer.valueOf("12") int转换成string : String.valueOf(12) ch ...

  4. java中的字符、字符串及数字之间的转换(转)

    一.string 和int之间的转换 1.string转换成int  :Integer.valueOf("12") 2.int转换成string : String.valueOf( ...

  5. 详解java中的byte类型

    Java也提供了一个byte数据类型,并且是基本类型.java byte是做为最小的数字来处理的,因此它的值域被定义为-128~127,也就是signed byte.下面这篇文章主要给大家介绍了关于j ...

  6. java中的byte

    8 bit (位) = 1 Byte (字节) java中的byte就是Byte 1024 Byte = 1KB 1024 KB = 1MB 1:“字节”是byte,“位”是bit : 2: 1 by ...

  7. 深入理解java中的byte类型

    作者 | 进击的石头--GO! 来源 | https://www.cnblogs.com/zl181015/p/9435035.html#4432849 Java也提供了一个byte数据类型,并且是基 ...

  8. 谈谈Java中整数类型(short int long)的存储方式

    在java中的整数类型有四种,分别是byte short in long,本文重点给大家介绍java中的整数类型(short int long),由于byte只是一个字节0或1,在此就不多说了,对ja ...

  9. java中整数的默认为int类型的一些问题

    thingking in java 读书感悟 作者 :淮左白衣 写于2018年4月8日17:51:44 关于整数的默认类型,以及会产生的一些小问题 涉及基本数据类型的重载 关于整数的默认类型,以及会产 ...

  10. Java中创建泛型数组

    Java中创建泛型数组 使用泛型时,我想很多人肯定尝试过如下的代码,去创建一个泛型数组 T[] array = new T[]; 当我们写出这样的代码时编译器会报Cannot create a gen ...

随机推荐

  1. 叉积(POJ - 2318 )

    题目链接:https://cn.vjudge.net/contest/276358#problem/A 题目大意:给你一个矩阵的左上角和右下角,然后n个竖杠,这n个竖杠将这个矩阵分成n+1个方块,给你 ...

  2. [转]避免头文件重复包含以及#ifndef 与 #program once 的区别

    为了避免同一个文件被include多次,C/C++中有两种方式,一种是#ifndef方式,一种是#pragma once方式.在能够支持这两种方式的编译器上,二者并没有太大的区别,但是两者仍然还是有一 ...

  3. 查询总结、HQL语法、QBC(QueryByCriteria)深入学习

    1.查询总结 在之前的批量查询练习的时候练习基本五种查询方法的使用: 1.OID查询---根据对象ID进行查询 2.对象属性导航查询: obj.getXXX 3.HQL查询:Query对象查询 4.Q ...

  4. Servlet笔记8--乱码解决方案

    乱码解决方案: 代码详解: package com.bjpowernode.javaweb.servlet; import java.io.IOException; import javax.serv ...

  5. 2017/05/22 java 基础 随笔

    多态:一种事物多种形态 前提:1.子父类继承关系 2.方法复写.重写 3.父类引用指向子类对象 成员变量: package com.huawei; public class Demo1 { publi ...

  6. imperva 更改agent的注册密码

    imperva agent 在注册到网关的时候显示账号密码错误 如下图 这是一个数据库审计的设备由于当初最开始实施的时候并不是我安装的,所以账号密码我也不清楚,客户留的账号密码也不确定.因此导致账号密 ...

  7. pom配置之:<distributionManagement>snapshot快照库和release发布库

    本文转载自:  铁木箱子的mzone的博客: http://www.mzone.cc/article/277.html http://www.mzone.cc/article/279.html 在使用 ...

  8. css-实现图标在输入框中显示

    一:JavaScript 是脚本语言 JavaScript 是一种轻量级的编程语言. JavaScript 是可插入 HTML 页面的编程代码. JavaScript 插入 HTML 页面后,可由所有 ...

  9. 3种高效的Tags标签系统数据库设计方案分享

    需求背景 目前主流的博客系统.CMS都会有一个TAG标签系统,不仅可以让内容链接的结构化增强,而且可以让文章根据Tag来区分.相比传统老式的Keyword模式,这种Tag模式可以单独的设计一个Map的 ...

  10. 7-9The Morning after Halloween uva1601

    这题可以用普通bfs来做  也可以用双向bfs来做(先欠着) 有点类似专题训练的一题   不过那题是找钥匙开门   不过都用了状态压缩 题意:  n,m(<=16) 的网络上有t(<=3) ...