java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送、者接收的数据都是
byte数组,但是int类型是4个byte组成的,如何把一个整形int转换成byte数组,同时如何把一个长度为4的byte数组转换为int类型。
下面有两种方式。
public static byte[] int2byte(int res) {
byte[] targets = new byte[4];
targets[0] = (byte) (res & 0xff);// 最低位
targets[1] = (byte) ((res >> 8) & 0xff);// 次低位
targets[2] = (byte) ((res >> 16) & 0xff);// 次高位
targets[3] = (byte) (res >>> 24);// 最高位,无符号右移。
return targets;
}
public static int byte2int(byte[] res) {
// 一个byte数据左移24位变成0x??000000,再右移8位变成0x00??0000
int targets = (res[0] & 0xff) | ((res[1] << 8) & 0xff00) // | 表示安位或
| ((res[2] << 24) >>> 8) | (res[3] << 24);
return targets;
}
public static byte[] intToByteArray(int i) throws Exception {
ByteArrayOutputStream buf = new ByteArrayOutputStream();
DataOutputStream out = new DataOutputStream(buf);
System.out.println("i:" + i);
out.writeInt(i);
byte[] b = buf.toByteArray();
System.out.println("i:" + b);
out.close();
buf.close();
return b;
}
public static int ByteArrayToInt(byte b[]) throws Exception {
int temp = 0, a=0;
ByteArrayInputStream buf = new ByteArrayInputStream(b);
return buf.read();
// while (buf.available() > 0) {
// System.out.println(a);
//
// System.out.println(a);
// temp = a ;
// }
// return temp;
// while ((System.out.println(a);)!=-1)
// {
// System.out.println(a);
// temp = a;
//
// }
// return temp;
分享到:
相关推荐
在Java编程中,将`int`类型转换为`byte`数组以及从`byte`数组还原回`int`类型是常见的操作,特别是在网络编程中。这是因为网络传输的数据通常以字节流的形式存在,而`int`等基本数据类型需要进行适当的序列化才能...
### Java将图片转换为byte数组及反向转换的知识点总结 #### 一、知识点概述 在Java编程中,经常需要处理图像数据,特别是在网络传输或存储时,将图像转换为`byte`数组是一种常见的做法。这不仅可以提高传输效率,...
总结来说,Java中字节数组与16进制字符串之间的转换涉及到位运算、字符映射以及字符串处理。了解这些概念对于处理二进制数据至关重要,特别是在网络编程、文件读写和数据序列化等场景中。希望以上内容能帮助你更好地...
在Java编程语言中,数据类型分为两种:原始(或基本)类型和引用类型。原始类型包括整型(如byte、short、int、long)、浮点型(如float、double)、字符型(char)以及布尔型(boolean)。这些类型的数据可以直接在...
本文将深入探讨如何在Java中进行这种转换,并提供两种不同的方法。 首先,了解基本原理:在Java中,字符串是由Unicode字符组成的,每个字符可能占用16位(两个字节),而字节数组中的每个元素仅占8位。因此,当字符...
除了上述两种基本转换,有时候还需要将byte数组转换为16进制字符串,便于在文本中展示或处理。以下是一个简单的转换方法: ```java public String byte2string(byte[] data) { if (data == null || data.length ) ...
Java中的int类型占用4个字节(即32位),因此转换后的byte数组长度为4。 ```java public static byte[] intToByte(int number) { int temp = number; byte[] b = new byte[4]; for (int i = b.length - 1; i >= 0...
在Java编程语言中,数据类型分为两种:基本类型(primitive types)和引用类型(reference types)。基本类型包括整型(如int、short、byte、long)、浮点型(如float、double)、字符型(char)以及布尔型(boolean...
本文将详细讲解如何在Java中进行这两种类型的转换,并解释相关原理。 1. **int类型转byte[]** 将一个`int`类型的数据转换为`byte[]`,主要是因为一个`int`占用32位,而一个`byte`只占用8位。在Java中,`int2bytes...
这个方法通过遍历字符串中的每一个字符,将每两个字符(一个十六进制数字)转换为一个字节,并放入byte数组中。 对于C#,可以使用`System.Convert`类的`FromHex`方法: ```csharp string hexString = "your_hex_...
在Java编程语言中,字节数组(byte array)和基本数据类型如int之间的转换是常见的操作,特别是在处理网络通信、文件存储或者序列化时。本篇内容将详细讲解如何在Java中进行这两种类型的转化。 首先,我们来看如何...
在 Java 中,数组是一种引用型变量,两个数组如果有相同的引用(地址),它们就有相同的元素。数组的长度可以使用 x.length 获取,例如:int[] z = new int[2]; System.out.println(z.length);。 本章节介绍了 Java...
JNI 中有两种数组操作,基础数据类型数组和对象数组,JNI 对待基础数据类型数组和对象数组是不一样的。 基础数据类型数组 基本数据类型数组对于基本数据类型数组,JNI 都有和 Java 相对应的结构,在使用起来和基本...
将基本数据类型转换为封装类对象有以下两种方法: - 使用封装类的构造器直接创建对象 - 使用封装类的静态方法valueOf将基本类型值转换为封装类对象 而将封装类对象转换回基本数据类型值有以下方法: - 使用封装类...
Java中有八种基本数据类型:`byte`, `short`, `int`, `long`, `float`, `double`, `char`, 和 `boolean`。这些类型之间存在一定的转换优先级。在进行类型转换时,需要确保转换不会导致数据丢失或精度降低。 2. **...
Java 中的 16 进制与字符串之间的转换是非常重要的一种操作,特别是在数据存储和网络传输时。本文将详细介绍 Java 中的 16 进制与字符串的相互转换函数分类。 将 byte 数组以 16 进制的形式打印到控制台 在 Java ...
它涉及到数据类型之间的相互转换,包括自动转换和强制转换两种方式。自动转换(也称隐式转换)是由编译器自动完成的,而强制转换则需要程序员明确指定转换的方式。 在Java中,数据类型按照大小可以分为两大类:基本...
数据类型的转换分为两种:自动类型转换(Autoboxing)和强制类型转换(Casting)。 自动类型转换通常发生在范围较小的数据类型赋值给范围较大的数据类型时,例如,byte赋值给int,或者char赋值给int。这种转换不会...
在Java中,程序设计涉及对各种数据类型的处理,包括基本类型、数组以及枚举类型。本教程将详细介绍这些概念。 首先,Java中的标识符是用于识别程序元素如类、变量、方法等的名字。它们由字母、数字和下划线组成,但...
- 图片与byte数组的互相转换,通常涉及图像编码和解码过程。 - 字节数组与整型(int)、长整型(long)、短整型(short)和字节类型(byte)之间的转换,需要根据字节顺序和位运算进行操作。 - 字符串与字节数组的...