`

short、int、long与byte之间的转换工具类

 
阅读更多

/**
 * 各基础类型与byte之间的转换
 * @author shanl
 *
 */
public class Utility {
	
	/**
	 * 将short转成byte[2]
	 * @param a
	 * @return
	 */
	public static byte[] short2Byte(short a){
		byte[] b = new byte[2];
		
		b[0] = (byte) (a >> 8);
		b[1] = (byte) (a);
		
		return b;
	}
	
	/**
	 * 将short转成byte[2]
	 * @param a
	 * @param b
	 * @param offset b中的偏移量
	 */
	public static void short2Byte(short a, byte[] b, int offset){
		b[offset] = (byte) (a >> 8);
		b[offset+1] = (byte) (a);
	}
	
	/**
	 * 将byte[2]转换成short
	 * @param b
	 * @return
	 */
	public static short byte2Short(byte[] b){
		return (short) (((b[0] & 0xff) << 8) | (b[1] & 0xff));
	}
	
	/**
	 * 将byte[2]转换成short
	 * @param b
	 * @param offset
	 * @return 
	 */
	public static short byte2Short(byte[] b, int offset){
		return (short) (((b[offset] & 0xff) << 8) | (b[offset+1] & 0xff));
	}

	/**
	 * long转byte[8]
	 * 
	 * @param a
	 * @param b
	 * @param offset
	 *            b的偏移量
	 */
	public static void long2Byte(long a, byte[] b, int offset) {		
		b[offset + 0] = (byte) (a >> 56);
		b[offset + 1] = (byte) (a >> 48);
		b[offset + 2] = (byte) (a >> 40);
		b[offset + 3] = (byte) (a >> 32);

		b[offset + 4] = (byte) (a >> 24);
		b[offset + 5] = (byte) (a >> 16);
		b[offset + 6] = (byte) (a >> 8);
		b[offset + 7] = (byte) (a);
	}

	/**
	 * byte[8]转long
	 * 
	 * @param b
	 * @param offset
	 *            b的偏移量
	 * @return
	 */
	public static long byte2Long(byte[] b, int offset) {
		 return ((((long) b[offset + 0] & 0xff) << 56)
		 | (((long) b[offset + 1] & 0xff) << 48)
		 | (((long) b[offset + 2] & 0xff) << 40)
		 | (((long) b[offset + 3] & 0xff) << 32)
		 
		 | (((long) b[offset + 4] & 0xff) << 24)
		 | (((long) b[offset + 5] & 0xff) << 16)
		 | (((long) b[offset + 6] & 0xff) << 8)
		 | (((long) b[offset + 7] & 0xff) << 0));
	}

	/**
	 * byte[8]转long
	 * 
	 * @param b
	 * @return
	 */
	public static long byte2Long(byte[] b) {
		 return
		 ((b[0]&0xff)<<56)|
		 ((b[1]&0xff)<<48)|
		 ((b[2]&0xff)<<40)|
		 ((b[3]&0xff)<<32)|
		
		 ((b[4]&0xff)<<24)|
		 ((b[5]&0xff)<<16)|
		 ((b[6]&0xff)<<8)|
		 (b[7]&0xff);
	}

	/**
	 * long转byte[8]
	 * 
	 * @param a
	 * @return
	 */
	public static byte[] long2Byte(long a) {
		byte[] b = new byte[4 * 2];

		b[0] = (byte) (a >> 56);
		b[1] = (byte) (a >> 48);
		b[2] = (byte) (a >> 40);
		b[3] = (byte) (a >> 32);
		
		b[4] = (byte) (a >> 24);
		b[5] = (byte) (a >> 16);
		b[6] = (byte) (a >> 8);
		b[7] = (byte) (a >> 0);

		return b;
	}

	/**
	 * byte数组转int
	 * 
	 * @param b
	 * @return
	 */
	public static int byte2Int(byte[] b) {
		return ((b[0] & 0xff) << 24) | ((b[1] & 0xff) << 16)
				| ((b[2] & 0xff) << 8) | (b[3] & 0xff);
	}

	/**
	 * byte数组转int
	 * 
	 * @param b
	 * @param offset
	 * @return
	 */
	public static int byte2Int(byte[] b, int offset) {
		return ((b[offset++] & 0xff) << 24) | ((b[offset++] & 0xff) << 16)
				| ((b[offset++] & 0xff) << 8) | (b[offset++] & 0xff);
	}

	/**
	 * int转byte数组
	 * 
	 * @param a
	 * @return
	 */
	public static byte[] int2Byte(int a) {
		byte[] b = new byte[4];
		b[0] = (byte) (a >> 24);
		b[1] = (byte) (a >> 16);
		b[2] = (byte) (a >> 8);
		b[3] = (byte) (a);

		return b;
	}

	/**
	 * int转byte数组
	 * 
	 * @param a
	 * @param b
	 * @param offset
	 * @return
	 */
	public static void int2Byte(int a, byte[] b, int offset) {		
		b[offset++] = (byte) (a >> 24);
		b[offset++] = (byte) (a >> 16);
		b[offset++] = (byte) (a >> 8);
		b[offset++] = (byte) (a);
	}
}
 
分享到:
评论
1 楼 csdn_zuoqiang 2012-05-31  
public class FileHead {
    /**版本*/
    public static final int VERSION = 0x00000001;
    /**头标志*/
    public static final byte[] FLAG = {'T', 'E', 'S', 'T'};
    /**压缩算法*/
    public int compress = 0x00000003;
}

        //向文件中写头信息
    static void t6(){
        FileHead head = new FileHead();
        OutputStream out = null;
        
        head.compress = 0x04;
        
        out.write(Utility.int2Byte(head.VERSION));
        out.write(head.FLAG);
        out.write(Utility.int2Byte(head.compress));
    }

相关推荐

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

    本文将详细介绍如何在Java中将`byte`数组与其他基本数据类型(如`int`、`long`、`short`、`byte`)之间进行转换。 首先,我们来看`byte`到`int`的转换。Java中的`byte`类型是8位的,取值范围是-128到127。如果要将...

    int、char、double与byte类型之间相互转换

    本文将详细介绍如何实现int、char、double与byte类型之间的相互转换,并通过具体的示例代码来阐述每一种转换方法。 ### 一、int类型转换为byte数组 #### 方法:intToByte() 该方法接收一个int类型的参数`number`,...

    java 举例分析 equals hashcode 基本类型与基本对象的比较 shot与Short int与Integer long与Long

    举例分析 equals 和 hashcode 方法,hashcode应该怎么样生成 8个基本类型与基本对象的比较:byte与Byte shot与Short int与Integer long与Long float与Float double与Double char与Character

    java基本类型与byte数组互相转换.doc

    例如,我们可以将byte数组转换为short类型、int类型、long类型、float类型、double类型、char类型等。这种转换可以使用相应的构造函数或方法来实现。 在Java编程中,将基本类型转换为byte数组或将byte数组转换为...

    java基本类型与byte数组互相转换.pdf

    Java 中的基本类型与 byte 数组之间的转换是非常重要的,以下是关于 Java 基本类型与 byte 数组互相转换的相关知识点: 1. short 类型转换成 byte 数组 在 Java 中,short 类型是 16 位的整数类型,而 byte 数组是...

    long 和 int 的相互转换.docx

    原始数据类型包括byte、short、int、long、float、double、char和boolean,而引用数据类型则包括类(class)、接口(interface)和数组。在处理数值计算时,我们可能需要在不同数据类型之间进行转换,特别是当涉及到long...

    java实现的字节数组转换成基本类型,基本类型转换成byte[]

    char short int long float double 转换成byte数组

    Java byte数组与其他类型转换

    本文将深入探讨如何在Java中将byte数组与其他基本类型(如short、int、long)进行转换,这些转换在处理二进制数据、网络通信或序列化等方面至关重要。 首先,我们来看byte数组与short之间的转换。在Java中,byte...

    java基本类型与byte数组互相转换

    在Java编程语言中,基本类型的变量(如`short`、`int`、`long`、`char`、`double`和`float`)和`byte`数组之间的相互转换是一项非常实用的技术,尤其是在网络通信、文件读写等场景下。下面将详细介绍如何进行这些...

    java基本类型与byte数组互相转换文.pdf

    这些基本类型可以相互转换,例如将 short 类型转换成 byte 数组、int 类型转换成 byte 数组等。 在 Java 中,基本类型可以使用 bitwise 运算符来实现与 byte 数组的转换。例如,将 short 类型转换成 byte 数组可以...

    java_android_类型转换工具类的标准代码

    一些工具类代码块的标准代码,包括但不限于: 十六进制字符串转换为byte数组 char转换为byte数组 16进制转化为数字 ytes数组转16进制String byte数组转换为十六进制字符串 int转换为byte数组 byte数组转换为int 保留...

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

    例如,byte与int相加时,byte会被提升为int类型进行运算。而在方法调用中,如果实参类型小于形参类型,也会发生自动转换。Java中数据类型的转换顺序是从byte、short、char到int,然后依次是long、float和double,...

    java数据类型转byte数组

    ip地址转4字节byte,char转2字节byte,byte数组转char,int整数转换为4字节的byte数组,byte数组转换为int整数,double类型转8字节数组,8位数组转double,long整数转换为8字节的byte数组,short整数转换为2字节的...

    java整数与byte数组的转换实现代码

    在Java中,整数可以分为多种类型,如int、long、short等,每种类型都有其对应的byte数组长度。例如,int类型的整数可以转换为4字节的byte数组,而long类型的整数可以转换为8字节的byte数组。 在上面的代码中,我们...

    Java中几种常用数据类型之间转换的方法

    在 Java 中,short 类型的变量可以隐式地转换为 int 类型的变量,这是因为 short 类型的范围是 -32768 到 32767,而 int 类型的范围是 -2147483648 到 2147483647,所以 short 类型的值可以被安全地转换为 int 类型...

    android byte[] 和short[]转换的方法代码

    本篇文章将详细讲解如何在Android中进行 `byte[]` 与 `short[]` 的转换,并提供相应的代码示例。 1. **简介** 在Android系统中,`byte` 类型用于表示8位的无符号整数,取值范围是0到255。而 `short` 类型则是一个16...

    Java中各个数据类型之间的转换

    原始类型包括布尔型(boolean)、字符型(char)、整型(byte、short、int、long)和浮点型(float、double),而引用类型主要指的是对象,如String和Date等。 1. 自动类型转换(隐式转换) 自动类型转换发生在...

    java代码-1·byte short int 在计算是会自动转化为int 2.float double 为近似值,byte short int 转化时可能会精确丢失 3.把大类型转化小的类型时可能会丢失

    当一个大数值类型(如long或double)转换为一个小数值类型(如byte、short或int)时,如果原始值超过了目标类型的最大值,转换后的结果将会截断,而不是引发错误。这种行为被称为截断转换,可能导致数据丢失。例如:...

    java基本类型与byte数组互相转换.rar

    原始类型包括整型(如byte、short、int、long)、浮点型(如float、double)、字符型(char)以及布尔型(boolean)。这些类型的数据可以直接在内存中存储值,而无需创建对象。然而,在某些场景下,我们可能需要将...

Global site tag (gtag.js) - Google Analytics