`

Java基本类型与byte数组之间相互转换

 
阅读更多

转:http://blog.sina.com.cn/s/blog_7a35101201012n0b.html

package com.my.wxf4j.utils;

import java.nio.charset.Charset;

public class ByteUtil
{
    public static byte[] getBytes(short data)
    {
        byte[] bytes = new byte[2];
        bytes[0] = (byte) (data & 0xff);
        bytes[1] = (byte) ((data & 0xff00) >> 8);
        return bytes;
    }

    public static byte[] getBytes(char data)
    {
        byte[] bytes = new byte[2];
        bytes[0] = (byte) (data);
        bytes[1] = (byte) (data >> 8);
        return bytes;
    }

    public static byte[] getBytes(int data)
    {
        byte[] bytes = new byte[4];
        bytes[0] = (byte) (data & 0xff);
        bytes[1] = (byte) ((data & 0xff00) >> 8);
        bytes[2] = (byte) ((data & 0xff0000) >> 16);
        bytes[3] = (byte) ((data & 0xff000000) >> 24);
        return bytes;
    }

    public static byte[] getBytes(long data)
    {
        byte[] bytes = new byte[8];
        bytes[0] = (byte) (data & 0xff);
        bytes[1] = (byte) ((data >> 8) & 0xff);
        bytes[2] = (byte) ((data >> 16) & 0xff);
        bytes[3] = (byte) ((data >> 24) & 0xff);
        bytes[4] = (byte) ((data >> 32) & 0xff);
        bytes[5] = (byte) ((data >> 40) & 0xff);
        bytes[6] = (byte) ((data >> 48) & 0xff);
        bytes[7] = (byte) ((data >> 56) & 0xff);
        return bytes;
    }

    public static byte[] getBytes(float data)
    {
        int intBits = Float.floatToIntBits(data);
        return getBytes(intBits);
    }

    public static byte[] getBytes(double data)
    {
        long intBits = Double.doubleToLongBits(data);
        return getBytes(intBits);
    }

    public static byte[] getBytes(String data, String charsetName)
    {
        Charset charset = Charset.forName(charsetName);
        return data.getBytes(charset);
    }

    public static byte[] getBytes(String data)
    {
        return getBytes(data, "GBK");
    }

    
    public static short getShort(byte[] bytes)
    {
        return (short) ((0xff & bytes[0]) | (0xff00 & (bytes[1] << 8)));
    }

    public static char getChar(byte[] bytes)
    {
        return (char) ((0xff & bytes[0]) | (0xff00 & (bytes[1] << 8)));
    }

    public static int getInt(byte[] bytes)
    {
        return (0xff & bytes[0]) | (0xff00 & (bytes[1] << 8)) | (0xff0000 & (bytes[2] << 16)) | (0xff000000 & (bytes[3] << 24));
    }
   
    public static long getLong(byte[] bytes)
    {
        return(0xffL & (long)bytes[0]) | (0xff00L & ((long)bytes[1] << 8)) | (0xff0000L & ((long)bytes[2] << 16)) | (0xff000000L & ((long)bytes[3] << 24))
         | (0xff00000000L & ((long)bytes[4] << 32)) | (0xff0000000000L & ((long)bytes[5] << 40)) | (0xff000000000000L & ((long)bytes[6] << 48)) | (0xff00000000000000L & ((long)bytes[7] << 56));
    }

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

    public static double getDouble(byte[] bytes)
    {
        long l = getLong(bytes);
        System.out.println(l);
        return Double.longBitsToDouble(l);
    }

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

    public static String getString(byte[] bytes)
    {
        return getString(bytes, "GBK");
    }

    
    public static void main(String[] args)
    {
        short s = 122;
        int i = 122;
        long l = 1222222;

        char c = 'a';

        float f = 122.22f;
        double d = 122.22;

        String string = "我是好孩子";
        System.out.println(s);
        System.out.println(i);
        System.out.println(l);
        System.out.println(c);
        System.out.println(f);
        System.out.println(d);
        System.out.println(string);

        System.out.println("**************");

        System.out.println(getShort(getBytes(s)));
        System.out.println(getInt(getBytes(i)));
        System.out.println(getLong(getBytes(l)));
        System.out.println(getChar(getBytes(c)));
        System.out.println(getFloat(getBytes(f)));
        System.out.println(getDouble(getBytes(d)));
        System.out.println(getString(getBytes(string)));
    }
}

 

分享到:
评论

相关推荐

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

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

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

    由于Java基本类型和byte数组都是基本的数据结构,因此在Java编程中经常需要将基本类型转换为byte数组,或者将byte数组转换为基本类型。 在上面的代码中,我们可以看到将Java基本类型转换为byte数组的多个方法,每个...

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

    "Java 基本类型与 byte 数组互相转换" Java 是一种面向对象的编程语言,具有强大而灵活的数据类型系统。 Java 中的基本类型包括 boolean、byte、char、short、int、long、float 和 double 等。这些基本类型可以相互...

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

    ### Java基本类型与Byte数组互相转换 在Java编程语言中,基本类型的变量(如`short`、`int`、`long`、`char`、`double`和`float`)和`byte`数组之间的相互转换是一项非常实用的技术,尤其是在网络通信、文件读写等...

    Java数值类型与byte数组相互转换

    Java bytes数组与基本类型的相互转换 Int -&gt; Bytes int64ToByte8 int48ToByte6 int40ToByte5 int32ToByte4 int24ToByte3 int16ToByte2 int8ToByte Bytes -&gt; Int bytesToInt64 bytesToInt48 bytesToInt40 bytesTo...

    Java byte数组与其他类型转换

    总的来说,Java中byte数组与其他基本类型之间的转换是通过位移和按位操作来完成的,这允许程序员在处理二进制数据时灵活地进行字节序列的解析和构造。了解并熟练掌握这些转换方法,对于处理涉及二进制数据的Java程序...

    java中两个byte数组实现合并的示例

    在Java编程语言中,有时我们需要将两个或多个字节数组(`byte`数组)合并成一个新的单一数组。这种情况在处理二进制数据、文件读写或者与硬件交互时尤其常见。本文将深入探讨如何在Java中实现两个`byte`数组的合并,...

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

    此外,Java的`DataInputStream`和`DataOutputStream`也可以用来进行基本类型与字节流之间的转换,它们提供了如`readInt()`, `writeInt()`, `readFloat()`, `writeFloat()`等方法。 在实际应用中,需要注意字节顺序...

    Java基本类型与byte数组之间相互转换方法

    上述代码提供了一些静态方法,用于在基本类型与byte数组之间进行转换。我们逐一分析这些方法: 1. `getBytes(short data)` 和 `getShort(byte[] bytes)` - 这两个方法处理short类型。`getBytes(short data)` 将...

    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数组例子总结

    #### 三、将byte数组转换回图片的方法 **方法名称**:`bytesToImage` **参数**: - `byte[] bytes`:表示包含图像数据的字节数组。 **返回值**:`Image` 表示转换后的图像对象。 **实现逻辑**: 1. **创建图像**...

    byte数组转换工具类 byte数组转int,byte数组转short,short转byte数组

    byte数组操作的工具类,支持byte数组转int,int转byte数组,byte数组转short,short转byte数组。。。 下载的人多了,csdn会自动涨分,现在可以手动调了,我给降到最低了

    java中把对象转化为byte数组的方法.doc

    java中把对象转化为byte数组的方法 Java 中将对象转化为 byte 数组的方法是指将 Java 对象序列化为二进制数据流,以便在网络上传输或存储。这种方法可以应用于各种领域,如分布式计算、网络通信、数据存储等。 在 ...

    int类型和byte数组之间的转换

    写一个方法,将int类型转换为字节数组,输入任意int类型整型,输出字节数组;写第二个方法,输入字节数组,输出对应int类型数据。

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

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

    String(含Hex)与Byte数组互相转换[代码]

    在Java或类似的编程语言中,我们经常会遇到需要将字符串(String)与字节数组(Byte[])以及十六进制表示的字符串(Hex)进行相互转换的情况。这些转换在处理网络通信、文件存储、加密解密等领域尤为关键。下面我们...

    将byte数组转化为图片

    将byte数组转化为图片,可以是灰度图片或者RGB图片,原理都是一样 的

    float转byte数组测试小工具

    本工具“float转byte数组测试小工具”专注于将浮点数(float)转换为字节数组,这是一种在计算机内存中表示和传输数值的常用方式。在Java、C++、C#等编程语言中,这种转换尤其重要,因为它们使用不同的数据结构来...

    转换Image数据为byte数组

    下面,我们将深入探讨如何在Java中实现图像数据与字节数组之间的相互转换,并分析这一过程中的关键步骤和技术细节。 ### 转换Image数据为byte数组 #### 方法一:`imageToBytes`函数解析 在Java中,将`Image`对象...

Global site tag (gtag.js) - Google Analytics