`

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的转换实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    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[]

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

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

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

    java数据类型转byte数组

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

    switch语句能否作用在byte上,能否作用在long上,能否作用在String上

     在switch(expr1)中,expr1只能是一个整数表达式或者枚举常量(更大字体),整数表达式可以是int基本类型或Integer包装类型,由于,byte,short,char都可以隐含转换为int,所以,这些类型以及这些类型的包装类型也...

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

    byte→short(char)→int→long→float→double 也就是说byte类型的变量可以自动转换为short类型,示例代码: byte b = 10; short sh = b; 这里在赋值时,JVM首先将b的值转换为short类型,然后再赋值给sh。 在类型...

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

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

    java数据类型的转换简单数据类型之间的转换 (2). 字符串与其它数据类型的转换 (3). 其它实用数据类型转换

    一些初学JAVA的朋友可能会遇到JAVA的数据类型之间转换的苦恼,例如,整数和float,double型之间的转换,整数和String类型之间的转换,以及处理、显示时间方面的问...byte、short、int、long;浮点型float、double。其

    C/C++与Java各数据类型所占字节数的详细比较

     [signed] short [int] 2Byte  unsigned short [int] 2 Byte  long [int] 4 Byte  unsigned long [int] 4 Byte Visual C++ 6.0:  [signed] int 4Byte unsigned int 4Byte  [signed] short [in

    C#自动类型转换与强制类型转换的讲解

     byte→short(char)→int→long→float→double 也就是说byte类型的变量可以自动转换为short类型,示例代码: byte b = 10; short sh = b; 在类型转换时可以跳跃。示例代码: byte b1 = 100; int n = b1; ...

    对于JPEG图片的数字水印提取程序

    int HufBlock(BYTE dchufindex,BYTE achufindex); int DecodeElement(); BYTE ReadByte(); int WaterMarkExtractDecode(); void IQtIZzMCUComponent(short flag); void IZzMCUComponent(short flag); void ...

    Java基础测试

    byte short int long 的关系

    Java Number & Math 类.pdf

    Java Number类提供了以下基本的数字操作:转换,比较,算术运算,取整,取余,取最大值和最小值,取绝对值,取幂,取对数,取根号,取随机数,取符号,取精度,取舍入值等。 三、什么是包装类? 在实际开发过程中,...

    Visual C++实用图像处理专业教程

    void Hist_plane(BYTE *image_in, BYTE *image_out, int xsize, int ysize, long hist[256]); /*--------------------------特征提取-----------------------------*/ 20.区域标记 int Labeling(BYTE *image_in, ...

    java包装类相关方法.txt

    byte-Byte short-Short int -Integer long -Long float -Float double -Double char-Character boolean-Boolean 1、所属的包 java.lang 2、类的继承关系、实现接口 前面6个包装类是与数字相关的 父类:Number...

    DELPHI6帮助文件-中英文对照

    基本整数类型包括Shortint、Smallint、Longint、Int64、Byte、Word、Longword等,如下: 类型 范围 格式 Shortint -128..127 含符号的8位 Smallint -32768..32767 含符号的16位 Longint -2147483648...

    JAVA程序员面试宝典

    原始类型封装类booleanBoolean charCharacter byteByte shortShort intInteger longLong floatFloat doubleDouble 引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和...

    车牌识别程序

    void location(byte *image,int width,int height,int yuzhi,int *HL,int *HH,int *VL,int *VH); void huidu(struct Bmp1 img,byte *srcBmp,byte *dstBmp); void bmptwo(struct Bmp1 img,byte *srcBmp,byte *dstBmp,...

    125条常见的java面试笔试题大汇总

    Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。 原始类型 封装类 boolean Boolean char Character byte Byte short Short int Integer long Long float Float double ...

Global site tag (gtag.js) - Google Analytics