java byte数组与int,long,short,byte的转换实现方法_java

实例如下:

public class DataTypeChangeHelper {
  /**
   * 将一个单字节的byte转换成32位的int
   *
   * @param b
   *      byte
   * @return convert result
   */
  public static int unsignedByteToInt(byte b) {
    return (int) b & 0xFF;
  } 

  /**
   * 将一个单字节的Byte转换成十六进制的数
   *
   * @param b
   *      byte
   * @return convert result
   */
  public static String byteToHex(byte b) {
    int i = b & 0xFF;
    return Integer.toHexString(i);
  } 

  /**
   * 将一个4byte的数组转换成32位的int
   *
   * @param buf
   *      bytes buffer
   * @param byte[]中开始转换的位置
   * @return convert result
   */
  public static long unsigned4BytesToInt(byte[] buf, int pos) {
    int firstByte = 0;
    int secondByte = 0;
    int thirdByte = 0;
    int fourthByte = 0;
    int index = pos;
    firstByte = (0x000000FF & ((int) buf[index]));
    secondByte = (0x000000FF & ((int) buf[index + 1]));
    thirdByte = (0x000000FF & ((int) buf[index + 2]));
    fourthByte = (0x000000FF & ((int) buf[index + 3]));
    index = index + 4;
    return ((long) (firstByte << 24 | secondByte << 16 | thirdByte << 8 | fourthByte)) & 0xFFFFFFFFL;
  } 

  /**
   * 将16位的short转换成byte数组
   *
   * @param s
   *      short
   * @return byte[] 长度为2
   * */
  public static byte[] shortToByteArray(short s) {
    byte[] targets = new byte[2];
    for (int i = 0; i < 2; i++) {
      int offset = (targets.length - 1 - i) * 8;
      targets[i] = (byte) ((s >>> offset) & 0xff);
    }
    return targets;
  } 

  /**
   * 将32位整数转换成长度为4的byte数组
   *
   * @param s
   *      int
   * @return byte[]
   * */
  public static byte[] intToByteArray(int s) {
    byte[] targets = new byte[2];
    for (int i = 0; i < 4; i++) {
      int offset = (targets.length - 1 - i) * 8;
      targets[i] = (byte) ((s >>> offset) & 0xff);
    }
    return targets;
  } 

  /**
   * long to byte[]
   *
   * @param s
   *      long
   * @return byte[]
   * */
  public static byte[] longToByteArray(long s) {
    byte[] targets = new byte[2];
    for (int i = 0; i < 8; i++) {
      int offset = (targets.length - 1 - i) * 8;
      targets[i] = (byte) ((s >>> offset) & 0xff);
    }
    return targets;
  } 

  /**32位int转byte[]*/
  public static byte[] int2byte(int res) {
    byte[] targets = new byte[4];
    targets[0] = (byte) (res & 0xff);// 最低位
    targets[1] = (byte) ((res >> 8) & 0xff);// 次低位
    targets[2] = (byte) ((res >> 16) & 0xff);// 次高位
    targets[3] = (byte) (res >>> 24);// 最高位,无符号右移。
    return targets;
  } 

  /**
   * 将长度为2的byte数组转换为16位int
   *
   * @param res
   *      byte[]
   * @return int
   * */
  public static int byte2int(byte[] res) {
    // res = InversionByte(res);
    // 一个byte数据左移24位变成0x??000000,再右移8位变成0x00??0000
    int targets = (res[0] & 0xff) | ((res[1] << 8) & 0xff00); // | 表示安位或
    return targets;
  }
} 

以上就是小编为大家带来的java byte数组与int,long,short,byte的转换实现方法全部内容了,希望大家多多支持~

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索int
, byte
, long
short
byte short int long、byte short int、java short转byte数组、short转byte数组、c short转byte数组,以便于您获取更多的相关知识。

时间: 2024-08-19 04:44:28

java byte数组与int,long,short,byte的转换实现方法_java的相关文章

基于java中byte数组与int类型的转换(两种方法)_java

java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送.者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形int转换成byte数组,同时如何把一个长度为4的byte数组转换为int类型.下面有两种方式. public static byte[] int2byte(int res) { byte[] targets = new byte[4]; targets[0] = (byte) (res & 0xf

PHP数组与对象之间使用递归实现转换的方法_php技巧

本文实例讲述了PHP数组与对象之间使用递归实现转换的方法.分享给大家供大家参考.具体实现方法如下: 这里涉及一些简单的对象与数组的相互转换的问题,采用递归写了两个方法如下: function arrayToObject($e){ if( gettype($e)!='array' ) return; foreach($e as $k=>$v){ if( gettype($v)=='array' || getType($v)=='object' ) $e[$k]=(object)arrayToObj

PHP数组与对象之间使用递归实现转换的方法

  本文实例讲述了PHP数组与对象之间使用递归实现转换的方法.分享给大家供大家参考.具体实现方法如下: 这里涉及一些简单的对象与数组的相互转换的问题,采用递归写了两个方法如下: ? 1 2 3 4 5 6 7 8function arrayToObject($e){ if( gettype($e)!='array' ) return; foreach($e as $k=>$v){ if( gettype($v)=='array' || getType($v)=='object' ) $e[$k]

java读取wav文件(波形文件)并绘制波形图的方法_java

本文实例讲述了java读取wav文件(波形文件)并绘制波形图的方法.分享给大家供大家参考.具体如下: 因为最近有不少网友询问我波形文件读写方面的问题,出于让大家更方便以及让代码能够得到更好的改进,我将这部分(波形文件的读写)代码开源在GitHub上面. 地址为https://github.com/sintrb/WaveAccess/,最新的代码.例子.文档都在那上面,我会在我时间精力允许的前提下对该项目进行维护,同时也希望对这方面有兴趣的网友能够加入到该开源项目上. 以下内容基本都过期了,你可以

Java从数据库中读取Blob对象图片并显示的方法_java

本文实例讲述了Java从数据库中读取Blob对象图片并显示的方法.分享给大家供大家参考.具体实现方法如下: 第一种方法: 大致方法就是,从数据库中读出Blob的流来,写到页面中去: 复制代码 代码如下: Connection conn = DBManager.getConnection();   String sql = "SELECT picture FROM teacher WHERE id=1";   PreparedStatement ps = null;   ResultSe

java实现分段读取文件并通过HTTP上传的方法_java

本文实例讲述了java实现分段读取文件并通过HTTP上传的方法.分享给大家供大家参考.具体如下: 1.首先将文件分段,用RandomAccessFile 2.分段后将分出的内容上传到http URL url = new URL(actionUrl); HttpURLConnection con = (HttpURLConnection) url.openConnection(); /** 允许Input.Output,不使用Cache */ con.setDoInput(true); con.s

Java Map 按key排序和按Value排序的实现方法_java

一.理论准备 Map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等. TreeMap:基于红黑树(Red-Black tree)的 NavigableMap 实现,该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法. HashMap的值是没有顺序的,它是按照key的HashCode来实现的,对于这个无序的HashMap我们要怎么来实现排序呢?参照TreeM

java全角、半角字符的关系以及转换详解_java

如果搞明白了Java中全角字符和半角字符之间的关系 那他们之间的转换根本就不是个事. 全角字符与半角字符的关系 可以通过下面的程序看看Java中所有字符以及对应编码的值 复制代码 代码如下:     public static void main(String[] args) {        for (int i = Character.MIN_VALUE; i <= Character.MAX_VALUE; ++i) {            System.out.println(i + &qu

java 输入一个数字,反转输出这个数字的值(实现方法)_java

如下所示: package 第四天; import java.util.Scanner; public class 数字反转 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入一个整数:"); int num=sc.nextInt(); int result=0;//存反转的数字 while(true) { int n=num%10