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,int转byte数组,byte数组转short,short转byte数组。。。 下载的人多了,csdn会自动涨分,现在可以手动调了,我给降到最低了
在C#编程语言中,将byte数组转换为8bit灰度图像是一项常见且重要的技能,尤其是在处理图像数据或开发图像处理应用时。本文将详细解析这一过程,包括关键概念、技术细节以及具体实现步骤。 ### 关键概念 1. **8bit...
实现CString和char数组的相互转换,实现CString和BYTE数组(16进制)的相互转换
总结起来,这个"C#byte数组结构体互相转换示例"提供了C#中结构体与字节数组之间转换的实用方法,解决了开发过程中常见的序列化和反序列化需求,提高了代码效率。开发者可以根据自己的项目需求,直接引用或借鉴这些...
发送数据时,只能发送byte数组,处理起来比较麻烦不说,如果是和c++等写的程序通信的话,很多的都是传送结构体,在VC6.0中可以很方便的把一个char[]数组转换为一个结构体,而在C#却不能直接把byte数组转换为结构体,...
这里提供了一个将字节数组转换为16进制字符串的辅助函数: ```csharp public static string ToHexString(byte[] bytes) { string hexString = string.Empty; if (bytes != null) { StringBuilder strB = new ...
2、把从数据库读取的byte数组转换为Image对象,赋值给相应的控件显示。 3、从图片byte数组得到对应图片的格式,生成一张图片保存到磁盘上。 这里的Image是System.Drawing.Image。 以下三个函数分别实现了上述三个...
由C代码翻译过来的PHP CRC8算法,内有十六进制转字节数组与字节数组转十六进制,内有十六进制转byte数组与byte数组转十六进制
在Java编程语言中,有时我们需要将两个或多个字节数组(`byte`数组)合并成一个新的单一数组。这种情况在处理二进制数据、文件读写或者与硬件交互时尤其常见。本文将深入探讨如何在Java中实现两个`byte`数组的合并,...
由于Java基本类型和byte数组都是基本的数据结构,因此在Java编程中经常需要将基本类型转换为byte数组,或者将byte数组转换为基本类型。 在上面的代码中,我们可以看到将Java基本类型转换为byte数组的多个方法,每个...
char*是C语言风格的字符串,它可以使用strlen函数获取其长度,然后使用Marshal::Copy函数将其拷贝到托管的byte数组中,最后使用System::Text::Encoding::UTF8->GetString函数将byte数组转换为托管的UTF8编码字符串。...
Java 基本类型与 byte 数组互相转换 Java 中的基本类型与 byte 数组之间的转换是非常重要的,以下是关于 Java 基本类型与 byte 数组互相转换的相关知识点: 1. short 类型转换成 byte 数组 在 Java 中,short ...
#### 三、将byte数组转换回图片的方法 **方法名称**:`bytesToImage` **参数**: - `byte[] bytes`:表示包含图像数据的字节数组。 **返回值**:`Image` 表示转换后的图像对象。 **实现逻辑**: 1. **创建图像**...
Java-byte数组转换成16进制字符串
在Android中,通常不需要担心这个问题,因为byte数组通常不涉及字节序。 总结,Android中将字节数组转换为十六进制字符串的方法多种多样,可以根据项目需求和性能要求选择合适的方式。在开发过程中,了解并熟练掌握...
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[])或者反之进行操作。这样的需求常见于网络传输、文件存储以及其他需要将图像...
标题和描述提到的“C# Byte数组转Int32 Short Float(浮点数)”是指将字节数组中的数据转换为整型(Int32)、短整型(Short)以及浮点数(Float)的过程。以下是对这个主题的详细解释: **字节数组基础** 字节数组...
在 Java 中,我们可以使用 byte 数组来表示二进制数据,而 16 进制字符串是将 byte 数组转换为字符串的形式。在本示例中,我们提供了两个方法来实现 byte 数组和 16 进制字符串之间的互转。 在 byte2Hex 方法中,...
本文将深入探讨如何在Java中将byte数组与其他基本类型(如short、int、long)进行转换,这些转换在处理二进制数据、网络通信或序列化等方面至关重要。 首先,我们来看byte数组与short之间的转换。在Java中,byte...