`
百合不是茶
  • 浏览: 345170 次
社区版块
存档分类
最新评论

基本数据类型与byte之间的相互转换

阅读更多

程序猿之所以这么牛逼,不是因为他们多聪明,而是他们善于总结--所以才会这么牛逼

 

1,两个byte数组的拼接b_1+b_2=b_3

 

// 字节数组的合拼
		byte[] b_1 = new byte[10];
		byte[] b_2 = new byte[30];
		byte[] b_3 = new byte[b_1.length + b_2.length];
		//字节数组的拼接
		System.arraycopy(b_1, 0, b_3, 0, b_1.length);
		System.arraycopy(b_2, 0, b_3, b_1.length, b_2.length);
		System.out.println(b_3.length);

 

 

 

2,char转byte和byte转char

 

   public static byte[] getByteOfChar(char paramChar) {
        byte[] arrayOfByte = new byte[2];
        arrayOfByte[0] = (byte) paramChar;
        arrayOfByte[1] = (byte) (paramChar >> '\b');
        return arrayOfByte;
    }

 

byte转char

    public static char getChar(byte[] paramArrayOfByte) {
        return (char) (0xFF & paramArrayOfByte[0] | 0xFF00 & paramArrayOfByte[1] << 8);
    }

 

 

 

3,double转byte和byte转double

 

    public static byte[] getByteOfDouble(double paramDouble) {
        return getByteOfLong(Double.doubleToLongBits(paramDouble));
    }

 

 public static byte[] getByteOfLong(long paramLong) {
        byte[] arrayOfByte = new byte[8];
        arrayOfByte[0] = (byte) (int) (paramLong & 0xFF);
        arrayOfByte[1] = (byte) (int) (0xFF & paramLong >> 8);
        arrayOfByte[2] = (byte) (int) (0xFF & paramLong >> 16);
        arrayOfByte[3] = (byte) (int) (0xFF & paramLong >> 24);
        arrayOfByte[4] = (byte) (int) (0xFF & paramLong >> 32);
        arrayOfByte[5] = (byte) (int) (0xFF & paramLong >> 40);
        arrayOfByte[6] = (byte) (int) (0xFF & paramLong >> 48);
        arrayOfByte[7] = (byte) (int) (0xFF & paramLong >> 56);
        return arrayOfByte;
    }

 

byte转double

    public static double getDouble(byte[] paramArrayOfByte) {
        long l = getLong(paramArrayOfByte);
        System.out.println(l);
        return Double.longBitsToDouble(l);
    }
    public static long getLong(byte[] paramArrayOfByte) {
        return 0xFF & paramArrayOfByte[0] | 0xFF00 & paramArrayOfByte[1] << 8 | 0xFF0000
                & paramArrayOfByte[2] << 16 | 0xFF000000 & paramArrayOfByte[3] << 24 | 0x0
                & paramArrayOfByte[4] << 32 | 0x0 & paramArrayOfByte[5] << 40 | 0x0
                & paramArrayOfByte[6] << 48 | 0x0 & paramArrayOfByte[7] << 56;
    }

 

 

 

4,float转byte和byte转float

 

 public static byte[] getByteOfFloat(float paramFloat) {
        return getByteOfInt(Float.floatToRawIntBits(paramFloat));
    }

 

public static byte[] getByteOfInt(int paramInt) {
        byte[] arrayOfByte = new byte[4];
        arrayOfByte[0] = (byte) (paramInt & 0xFF);
        arrayOfByte[1] = (byte) ((0xFF00 & paramInt) >> 8);
        arrayOfByte[2] = (byte) ((0xFF0000 & paramInt) >> 16);
        arrayOfByte[3] = (byte) ((0xFF000000 & paramInt) >> 24);
        return arrayOfByte;
    }

 

byte转float

    public static float getFloat(byte[] paramArrayOfByte) {
        return Float.intBitsToFloat(getInt(paramArrayOfByte));
    }

    public static int getInt(byte[] paramArrayOfByte) {
        return 0xFF & paramArrayOfByte[0] | 0xFF00 & paramArrayOfByte[1] << 8 | 0xFF0000
                & paramArrayOfByte[2] << 16 | 0xFF000000 & paramArrayOfByte[3] << 24;
    }

  

 

 

 

5,int转byte和byte转int

 

  public static byte[] getByteOfInt(int paramInt) {
        byte[] arrayOfByte = new byte[4];
        arrayOfByte[0] = (byte) (paramInt & 0xFF);
        arrayOfByte[1] = (byte) ((0xFF00 & paramInt) >> 8);
        arrayOfByte[2] = (byte) ((0xFF0000 & paramInt) >> 16);
        arrayOfByte[3] = (byte) ((0xFF000000 & paramInt) >> 24);
        return arrayOfByte;
    }

 

byte转int

    public static int getInt(byte[] paramArrayOfByte) {
        return 0xFF & paramArrayOfByte[0] | 0xFF00 & paramArrayOfByte[1] << 8 | 0xFF0000
                & paramArrayOfByte[2] << 16 | 0xFF000000 & paramArrayOfByte[3] << 24;
    }

  

 

 

6,long转byte和byte转long

 

    public static byte[] getByteOfLong(long paramLong) {
        byte[] arrayOfByte = new byte[8];
        arrayOfByte[0] = (byte) (int) (paramLong & 0xFF);
        arrayOfByte[1] = (byte) (int) (0xFF & paramLong >> 8);
        arrayOfByte[2] = (byte) (int) (0xFF & paramLong >> 16);
        arrayOfByte[3] = (byte) (int) (0xFF & paramLong >> 24);
        arrayOfByte[4] = (byte) (int) (0xFF & paramLong >> 32);
        arrayOfByte[5] = (byte) (int) (0xFF & paramLong >> 40);
        arrayOfByte[6] = (byte) (int) (0xFF & paramLong >> 48);
        arrayOfByte[7] = (byte) (int) (0xFF & paramLong >> 56);
        return arrayOfByte;
    }

 

byte转long

    public static long getLong(byte[] paramArrayOfByte) {
        return 0xFF & paramArrayOfByte[0] | 0xFF00 & paramArrayOfByte[1] << 8 | 0xFF0000
                & paramArrayOfByte[2] << 16 | 0xFF000000 & paramArrayOfByte[3] << 24 | 0x0
                & paramArrayOfByte[4] << 32 | 0x0 & paramArrayOfByte[5] << 40 | 0x0
                & paramArrayOfByte[6] << 48 | 0x0 & paramArrayOfByte[7] << 56;
    }

 

 

 

 

6,short转byte和byte转short

 

  public static byte[] getByteOfShort(short paramShort) {
        byte[] arrayOfByte = new byte[2];
        arrayOfByte[0] = (byte) (paramShort & 0xFF);
        arrayOfByte[1] = (byte) ((0xFF00 & paramShort) >> 8);
        return arrayOfByte;
    }

 

byte转short

    public static short getShort(byte[] paramArrayOfByte) {
        return (short) (0xFF & paramArrayOfByte[0] | 0xFF00 & paramArrayOfByte[1] << 8);
    }

 

 

 

7,String转byte和byte转String

   public static byte[] getByteOfString(String paramString1, String paramString2) {
        return paramString1.getBytes(Charset.forName(paramString2));
    }

 指定编码格式

 public static byte[] getByteOfStringUTF_8(String paramString) {
        return getByteOfString(paramString, "UTF-8");
    }

 

byte转Sing

    public static String getString(byte[] paramArrayOfByte) {
        return getString(paramArrayOfByte, "UTF-8"); //指定编码
    }

    public static String getString(byte[] paramArrayOfByte, String paramString) {
        return new String(paramArrayOfByte, Charset.forName(paramString));
    }

 

 

8,文件转Byte

	public byte[] file2Byte() {
		byte[] myfileData = null;
		try {
			InputStream is = mContext.getResources()
					.openRawResource(R.raw.json);//android读取assets下的资源文件
			BufferedInputStream reaStream = new BufferedInputStream(is);
			int length = reaStream.available();
			myfileData = new byte[length];
			reaStream.read(myfileData);

		} catch (Exception ex) {
			System.out.println("Exception: " + ex);
			ex.printStackTrace();
		}
		return myfileData;
	}

 

 

9,byte转文件

	public void byte2File(byte[] data, String path) {
		if (data.length < 3 || path.equals(""))
			return;
		try {
			FileOutputStream imageOutput = new FileOutputStream(new File(path));
			imageOutput.write(data, 0, data.length);
			imageOutput.close();
			System.out.println("Make Picture success,Please find image in "
					+ path);
		} catch (Exception ex) {
			System.out.println("Exception: " + ex);
			ex.printStackTrace();
		}
	}

 

0
1
分享到:
评论

相关推荐

    BYTE类型之间相互转换

    学习C++必经之路,入门级知识总结,笔记本知识概况,走一步再走一步

    byte[]与各种数据类型互相转换示例.md

    byte[]与各种数据类型互相转换示例

    vc各种数据类型相互转换源码

    vc各种数据类型相互转换 包括基本数据类型与CString类型的相互转换 TCHAR和CString的相互转换 TCHAR与BSTR的相互转换 BSTR与CString的相互转换 DWORD与WORD的相互转换 WORD与BYTE的相互转换 COLORREF与RGB分量的相互...

    Java的8大基本数据类型.pdf

    Java的 的8⼤基本数据类型 ⼤基本数据类型 Java8⼤基本数据类型 ⼤基本数据类型 byte(字节型)、short(短整型)、int (整型) 、long(长整型) float(单精度浮点型)、double(双精度浮点型)、boolean(布尔型)、...

    数据类型转换

    float、double等类型与byte数组相互转换,根据数据类型的位数不同,对应的数组大小也不同、例如int32位,4个字节,则需要大小为4的byte数组来进行转换,详情请看代码,里面有转换的实现和详细的注释

    16进制与10进制相互转换,整型,双整型,浮点数等

    所以使用程序读出的都是一个16进制字符串,这时就需要自己手动根据数据类型转换成10进制自己需要的数,自已编写的一个小工具,完美实现各种数据类型16进制与10进制之间的转换,包括Byte、Word、DWord、Int、Dint、...

    Java字节数组与常见类型转换工具

    Java字节数组与常见类型转换工具,包括byte[] 与int long double float string boolean 等类型的相互转换。

    Java 基础 byte[]与各种数据类型互相转换的简单示例

    主要介绍了Java 基础 byte[]与各种数据类型互相转换的简单示例的相关资料,这里对byte[]类型对long,int,double,float,short,cahr,object,string类型相互转换的实例,需要的朋友可以参考下

    在C#中将任意数值类型数据与字节数组相互转换的一个方法及源代码

    using System.IO; …… float f1 = 1.1F MemoryStream s = new MemoryStream(); BinaryWriter w=new BinaryWriter(s );

    Android数据类型之间相互转换系统介绍

    一些初学Android的朋友可能会遇到JAVA的数据类型之间转换的苦恼,例如,整数和float,double型之间的转换,整数和String类型之间的转换,以及处理、显示时间方面的问题等。下面笔者就开发中的一些体会介绍给大家。 ...

    J2ME 数据类型的相互转换方法

    整数到字节数组的转换 字节数组到整数的转换

    Java企业面试问题2.txt

    2.2:基本数据类型和它对应的封装类型之间可以相互转换,从基本数据类型到封装类 型叫做装箱,从封装类型到基本数据类型叫拆箱,自动拆装箱是jdk5.0提供的新特特性 2.3当我们要调用的方法中存在重载的时候,即...

    阿里2017年Java学科面试测试题

    但是为了能够将这些基本数据类型当成对象操作,Java为每一个基本数据类型都引入了对应的包装类型(wrapper class),int的包装类就是Integer,从Java 5开始引入了自动装箱/拆箱机制,使得二者可以相互转换。...

    【后端】java基础(3.3)java基础进阶之数据基本类型的转换

    在数据类型那章我们学习了java的八大基本类型,我们发现。除了boolean类型,其它的几种类型都是数(char类型也可以看成是数)。那么既然都是数,那么他们之间能不能相互转换呢? 基本类型之间的转换我们分为以下几种...

    Java变量、标识符、数据类型及其转换

    Java变量、标识符、数据类型及其转换一、变量的概念二、Java常用数据类型(1)数值(2)非数值三、不同进制的整数四、基本运算符五、类型转换问题 一、变量的概念 variable — 变量是程序执行时,内存中的存储单元. ...

    python的struct模块.doc

    但当Python需要通过网络与其他的平台进行交互的时 " "候,必须考虑到将这些数据类型与其他平台或语言之间的类型进行互相转换问题 " "。打个比方:C++写的客户端发送一个int型(4字节)变量的数据到 Python写的服 " "务...

    Visual C++开发经验技巧宝典(第2章)

    0090 ColeVariant与其他数据类型的转换 38 0091 格式化类型 39 2.2 类型转换 39 0092 CString和char*之间的转换 39 0093 char与char*类型应用 39 0094 COLORREF类型转换RGB分量 40 0095 DWORD与 WORD...

    Android中的Bitmap序列化失败的解决方法

    之前写了个User类(实现了Serializable接口),类变量里有Bitmap类型的头像图片,Bitmap...附byte数组与Bitmap的相互转换方法: Bitmap转换成byte数组 private byte[] bitmap2Bytes(Bitmap bitmap) { ByteArrayOutputS

    Java你不知道的包装类

    在JAVA程序设计中经常用到一系列类型 ,如int char double 等,可以把他们想像成“基本”类型。  它们显然要特殊对待...  如:基本数据类型之间的相互转换不是都可以制动转换的而你强制转换又会出问题,比如String

    S7-200编程小技巧

    S7-200编程小技巧 ... 西门子的 S7-200 PLC 功能强大,性能可靠,但在做数学运算时不能象高级语言... 同理,如果有字节型变量经常需要与字类型变量相互转换,让字节变量占用一个字的内存宽度浪费一个字节,避免类型转换。

Global site tag (gtag.js) - Google Analytics