`
ffgghj
  • 浏览: 2418 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

byte数组转换

阅读更多
byte数组的转换工具类

public class FormatTransfer
{
  public static byte[] toLH(int n)
  {
    byte[] b = new byte[4];
    b[0] = (byte)(n & 0xFF);
    b[1] = (byte)(n >> 8 & 0xFF);
    b[2] = (byte)(n >> 16 & 0xFF);
    b[3] = (byte)(n >> 24 & 0xFF);
    return b;
  }

  public static byte[] toHH(int n)
  {
    byte[] b = new byte[4];
    b[3] = (byte)(n & 0xFF);
    b[2] = (byte)(n >> 8 & 0xFF);
    b[1] = (byte)(n >> 16 & 0xFF);
    b[0] = (byte)(n >> 24 & 0xFF);
    return b;
  }

  public static byte[] toLH(short n)
  {
    byte[] b = new byte[2];
    b[0] = (byte)(n & 0xFF);
    b[1] = (byte)(n >> 8 & 0xFF);
    return b;
  }

  public static byte[] toHH(short n)
  {
    byte[] b = new byte[2];
    b[1] = (byte)(n & 0xFF);
    b[0] = (byte)(n >> 8 & 0xFF);
    return b;
  }

  public static byte[] toLH(float f)
  {
    return toLH(Float.floatToRawIntBits(f));
  }

  public static byte[] toHH(float f)
  {
    return toHH(Float.floatToRawIntBits(f));
  }

  public static byte[] stringToBytes(String s, int length)
  {
    while (s.getBytes().length < length) {
      s = s + " ";
    }
    return s.getBytes();
  }

  public static String bytesToString(byte[] b)
  {
    StringBuffer result = new StringBuffer("");
    int length = b.length;
    for (int i = 0; i < length; i++) {
      result.append((char)(b[i] & 0xFF));
    }
    return result.toString();
  }

  public static byte[] stringToBytes(String s)
  {
    return s.getBytes();
  }

  public static int hBytesToInt(byte[] b)
  {
    int s = 0;
    for (int i = 0; i < 3; i++) {
      if (b[i] >= 0)
        s += b[i];
      else {
        s = s + 256 + b[i];
      }
      s *= 256;
    }
    if (b[3] >= 0)
      s += b[3];
    else {
      s = s + 256 + b[3];
    }
    return s;
  }

  public static int lBytesToInt(byte[] b)
  {
    int s = 0;
    for (int i = 0; i < 3; i++) {
      if (b[(3 - i)] >= 0)
        s += b[(3 - i)];
      else {
        s = s + 256 + b[(3 - i)];
      }
      s *= 256;
    }
    if (b[0] >= 0)
      s += b[0];
    else {
      s = s + 256 + b[0];
    }
    return s;
  }

  public static short hBytesToShort(byte[] b)
  {
    int s = 0;
    if (b[0] >= 0)
      s += b[0];
    else {
      s = s + 256 + b[0];
    }
    s *= 256;
    if (b[1] >= 0)
      s += b[1];
    else {
      s = s + 256 + b[1];
    }
    short result = (short)s;
    return result;
  }

  public static short lBytesToShort(byte[] b)
  {
    int s = 0;
    if (b[1] >= 0)
      s += b[1];
    else {
      s = s + 256 + b[1];
    }
    s *= 256;
    if (b[0] >= 0)
      s += b[0];
    else {
      s = s + 256 + b[0];
    }
    short result = (short)s;
    return result;
  }

  public static float hBytesToFloat(byte[] b)
  {
    int i = 0;
    Float F = new Float(0.0D);
    i = (((b[0] & 0xFF) << 8 | b[1] & 0xFF) << 8 | b[2] & 0xFF) << 8 |
      b[3] & 0xFF;
    return Float.intBitsToFloat(i);
  }

  public static float lBytesToFloat(byte[] b)
  {
    int i = 0;
    Float F = new Float(0.0D);
    i = (((b[3] & 0xFF) << 8 | b[2] & 0xFF) << 8 | b[1] & 0xFF) << 8 |
      b[0] & 0xFF;
    return Float.intBitsToFloat(i);
  }

  public static byte[] bytesReverseOrder(byte[] b)
  {
    int length = b.length;
    byte[] result = new byte[length];
    for (int i = 0; i < length; i++) {
      result[(length - i - 1)] = b[i];
    }
    return result;
  }

  public static void printBytes(byte[] bb)
  {
    int length = bb.length;
    for (int i = 0; i < length; i++) {
      System.out.print(bb + " ");
    }
    System.out.println("");
  }

  public static void logBytes(byte[] bb) {
    int length = bb.length;
    String out = "";
    for (int i = 0; i < length; i++)
      out = out + bb + " ";
  }

  public static int reverseInt(int i)
  {
    int result = hBytesToInt(toLH(i));
    return result;
  }

  public static short reverseShort(short s)
  {
    short result = hBytesToShort(toLH(s));
    return result;
  }

  public static float reverseFloat(float f)
  {
    float result = hBytesToFloat(toLH(f));
    return result;
  }
}
分享到:
评论

相关推荐

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

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

    C#中将byte数组转换为8bit灰度图像

    在C#编程语言中,将byte数组转换为8bit灰度图像是一项常见且重要的技能,尤其是在处理图像数据或开发图像处理应用时。本文将详细解析这一过程,包括关键概念、技术细节以及具体实现步骤。 ### 关键概念 1. **8bit...

    CString与char数组和BYTE数组转换

    实现CString和char数组的相互转换,实现CString和BYTE数组(16进制)的相互转换

    C#byte数组结构体互相转换示例.zip

    总结起来,这个"C#byte数组结构体互相转换示例"提供了C#中结构体与字节数组之间转换的实用方法,解决了开发过程中常见的序列化和反序列化需求,提高了代码效率。开发者可以根据自己的项目需求,直接引用或借鉴这些...

    C#中byte数组和c++结构体的转换

    发送数据时,只能发送byte数组,处理起来比较麻烦不说,如果是和c++等写的程序通信的话,很多的都是传送结构体,在VC6.0中可以很方便的把一个char[]数组转换为一个结构体,而在C#却不能直接把byte数组转换为结构体,...

    C#_string_byte数组转换解析

    这里提供了一个将字节数组转换为16进制字符串的辅助函数: ```csharp public static string ToHexString(byte[] bytes) { string hexString = string.Empty; if (bytes != null) { StringBuilder strB = new ...

    C# byte数组与Image相互转换的方法

    2、把从数据库读取的byte数组转换为Image对象,赋值给相应的控件显示。 3、从图片byte数组得到对应图片的格式,生成一张图片保存到磁盘上。 这里的Image是System.Drawing.Image。 以下三个函数分别实现了上述三个...

    PHP CRC8算法-集成十六进制转byte数组与byte数组转十六进制

    由C代码翻译过来的PHP CRC8算法,内有十六进制转字节数组与字节数组转十六进制,内有十六进制转byte数组与byte数组转十六进制

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

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

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

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

    std::string、char*、const char*转托管byte数组或托管字符串String

    char*是C语言风格的字符串,它可以使用strlen函数获取其长度,然后使用Marshal::Copy函数将其拷贝到托管的byte数组中,最后使用System::Text::Encoding::UTF8-&gt;GetString函数将byte数组转换为托管的UTF8编码字符串。...

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

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

    Java将图片转换为byte数组例子总结

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

    Java-byte数组转换成16进制字符串

    Java-byte数组转换成16进制字符串

    android byte字节数组转换十六进制字符串

    在Android中,通常不需要担心这个问题,因为byte数组通常不涉及字节序。 总结,Android中将字节数组转换为十六进制字符串的方法多种多样,可以根据项目需求和性能要求选择合适的方式。在开发过程中,了解并熟练掌握...

    byte数组转uint

    public static uint ByteToInt(byte[] b) { uint u = 0; int startIndex = 0; if (b.Length == 8) u = (uint)(b[startIndex + 0] | b[startIndex + 1] | b[startIndex + 2] | b[startIndex + 3] | b[startIndex...

    Image 和Byte数组之间转换

    ### Image与Byte数组之间的转换知识点详解 #### 一、知识点概览 在处理图像数据时,经常需要将图像对象(Image)转换为字节数组(Byte[])或者反之进行操作。这样的需求常见于网络传输、文件存储以及其他需要将图像...

    C# Byte数组转Int32 Short Float(浮点数)

    标题和描述提到的“C# Byte数组转Int32 Short Float(浮点数)”是指将字节数组中的数据转换为整型(Int32)、短整型(Short)以及浮点数(Float)的过程。以下是对这个主题的详细解释: **字节数组基础** 字节数组...

    Java中3DES加密解密示例(封装byte数组16进制互转)

    在 Java 中,我们可以使用 byte 数组来表示二进制数据,而 16 进制字符串是将 byte 数组转换为字符串的形式。在本示例中,我们提供了两个方法来实现 byte 数组和 16 进制字符串之间的互转。 在 byte2Hex 方法中,...

    Java byte数组与其他类型转换

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

Global site tag (gtag.js) - Google Analytics