`
lbyzx123
  • 浏览: 477916 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java基本类型与字节数据之间的转换

    博客分类:
  • java
 
阅读更多
public class PrimitiveTypeConverter {

	public PrimitiveTypeConverter() {

	}

	/**
	 * 获取字节数组的整型值
	 * 
	 * @param bs
	 * @return
	 */
	public static int bytesToInt(byte[] bs) {
		int intValue = 0;

		for (int i = 0; i < 4; i++) {
			intValue += (bs[i] & 0xFF) << (8 * i); // 需要反转时是(8*(3-i))
		}

		return intValue;
	}

	/**
	 * 获取字节数组的整型值
	 * 
	 * @param bs
	 * @return
	 */
	public static int bytesToIntForReverse(byte[] bs) {
		int intValue = 0;

		for (int i = 0; i < 4; i++) {
			intValue += (bs[i] & 0xFF) << (8 * (3 - i)); // 需要反转时是(8*(3-i))
		}

		return intValue;
	}

	/**
	 * 获取字节数组的整型值
	 * 
	 * @param bs
	 * @param startIndex
	 * @return
	 */
	public static int bytesToInt(byte[] bs, int startIndex) {
		int intValue = 0;

		for (int i = 0; i < 4; i++) {
			intValue += (bs[i + startIndex] & 0xFF) << (8 * i); // 需要反转时是(8*(3-i))
		}

		return intValue;
	}

	/**
	 * 获取字节数组的整型值
	 * 
	 * @param bs
	 * @param startIndex
	 * @return
	 */
	public static int bytesToIntForReserve(byte[] bs, int startIndex) {
		int intValue = 0;

		for (int i = 0; i < 4; i++) {
			intValue += (bs[i + startIndex] & 0xFF) << (8 * (3 - i)); // 需要反转时是(8*(3-i))
		}

		return intValue;
	}

	/**
	 * 获取字节数组的长整型值
	 * 
	 * @param bs
	 * @return
	 */
	public static long bytesToLong(byte[] bs) {
		long longValue = 0L;
		for (int i = 0; i < 8; i++) {
			longValue += (long) ((bs[i] & 0xFF) << (8 * i)); // 或者(8*(7-i))
			// System.out.println(longValue);
		}

		return longValue;
	}

	/**
	 * 获取字节数组的长整型值
	 * 
	 * @param bs
	 * @param startIndex
	 *            字节数组的起始位置
	 * @return
	 */
	public static long bytesToLong(byte[] bs, int startIndex) {
		long longValue = 0L;
		for (int i = 0; i < 8; i++) {
			longValue += (bs[i + startIndex] & 0xFF) << (8 * i); // 或者(8*(7-i))
		}

		return longValue;
	}

	/**
	 * 获取网络字节数组的长整型值,需反转
	 * 
	 * @param bs
	 * @param startIndex
	 *            字节数组的起始位置
	 * @return
	 */
	public static long bytesToLongForReverse(byte[] bs, int startIndex) {
		long longValue = 0L;
		for (int i = 0; i < 8; i++) {
			longValue += (long) (bs[i + startIndex] & 0xFF) << (8 * (7 - i)); // 或者(8*(7-i))
		}

		return longValue;
	}

	/**
	 * 整型转换成字节数组
	 * 
	 * @param num
	 * @return
	 */
	public static byte[] intToBytes(int num) {
		byte[] b = new byte[4];
		for (int i = 0; i < 4; i++) {
			b[i] = (byte) (num >>> (24 - i * 8));
		}
		return b;
	}

	/**
	 * 长整型转换成字节数组
	 * 
	 * @param num
	 * @return
	 */
	public static byte[] longToBytes(long num) {
		byte[] b = new byte[8];
		for (int i = 0; i < 8; i++) {
			b[i] = (byte) (num >>> (i * 8));
			// System.out.println(b[i]);
		}
		return b;
	}

	public static int bytesToIntEx(byte b[]) {
		if (b != null && b.length > 0) {
			if (b.length >= 4) {
				return b[3] & 0xff | (b[2] & 0xff) << 8 | (b[1] & 0xff) << 16
						| (b[0] & 0xff) << 24;
			} else if (b.length == 2) {
				return bytes2ToInt(b);
			} else {
				return 0;
			}

		} else {
			return 0;
		}

	}

	public static int bytes2ToInt(byte b[]) {
		return b[1] & 0xff | (b[0] & 0xff) << 8;
	}

	public static int byteToInt(byte b) {
		return (int) b;
	}

	public static int byteToUnsignedInt(byte b) {
		return b & 0xff;
	}

}

 

分享到:
评论

相关推荐

    常见java中数据类型之间的转换.txt

    ### 常见Java中数据类型之间的转换 在Java编程语言中,数据类型的转换是非常常见的操作之一。通过数据类型转换,可以确保不同数据类型之间的兼容性,并满足特定场景下的需求。本文将详细介绍Java中常见的数据类型...

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

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

    JAVA数据类型思维导图

    - 自动类型转换(Widening Conversion):基本数据类型之间的转换,从小范围类型到大范围类型,例如,byte到int。 - 强制类型转换(Narrowing Conversion):需要程序员显式进行,可能丢失精度或抛出异常,如从...

    Java基本数据类型

    ### Java基本数据类型详解 #### 一、引言 在Java编程语言中,理解基本数据类型对于编写高效、可靠的程序至关重要。本文将详细介绍Java中的基本数据类型,包括它们的定义、范围、存储空间以及如何在实际开发中正确...

    Java实现字节流与图片的转化

    在Java编程中,字节流(Byte Stream)是处理数据的基本方式,特别是在处理二进制数据,如图片、音频或视频文件时。本教程将详细讲解如何使用Java实现字节流来转换和处理图片。 首先,我们需要理解字节流的概念。在...

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

    然而,在某些场景下,我们可能需要将这些基本类型的数据转换为字节数组(byte[]),或者从字节数组中恢复这些基本类型的数据。这在处理网络传输、文件存储或序列化时尤其常见。 转换的基本过程可以分为两个主要步骤...

    java-16进制4字节转Float

    在Java编程语言中,将16进制的4字节数据转换为浮点数是常见的数据处理操作,尤其是在与硬件设备交互或者进行低级通信时。这个过程涉及到字节顺序的理解,以及Java中的数据类型转换。以下是关于这个主题的详细解释。 ...

    Java与其他语言数据类型之间的转换方法

    Java与其他编程语言之间进行数据类型转换是跨平台编程中常见的需求,特别是在网络通信或文件交互时。本篇文章主要探讨了Java如何与C、C++、Delphi等Windows编程语言进行数据类型的转换,尤其是针对字节序...

    第02章 Java编程基础 04 基本数据类型转换

    这是Java SE 5.0引入的特性,以方便在基本类型与对象之间进行操作。 例如,你可以将一个int变量转换为Integer对象: ```java int num = 10; Integer boxedNum = Integer.valueOf(num); // 装箱 ``` 然后,如果你想...

    java中jython操作把python数据类型转成java类型

    在Java中,Jython是一个非常有用的工具,它允许我们在Java应用程序中嵌入Python代码,并能够无缝地在Python数据类型和Java数据类型之间进行转换。这极大地扩展了Java的生态系统,让我们能够利用Python丰富的库和简洁...

    JAVA变量类型之间的相互转换

    ### JAVA变量类型之间的相互转换详解 在JAVA编程中,数据类型的转换...无论是基本类型之间的转换,还是与字符串、日期类型之间的转换,都有其特定的方法和规则。开发者应熟悉这些转换机制,以便在实际开发中灵活运用。

    Java中8中基本数据类型

    Java的基本数据类型之间可以进行自动转换,这种转换遵循一定的规则。转换顺序如下: - Byte - Float - Int - Long 例如,当一个byte类型的值与一个int类型的值相加时,byte类型的值会自动转换为int类型,然后...

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

    在Java编程语言中,将基本数据类型转换为字节数组以及从字节数组转换回基本数据类型是一项常见的操作,特别是在处理网络通信、数据存储和序列化等场景。上述代码提供了一些方法来实现这些转换,包括short、int、long...

    Java 基本数据类型及表达式

    Java是一种广泛使用的面向对象的编程语言,它的核心特性之一就是它的基本数据类型。基本数据类型是Java语言预定义的,它们是固定大小的,不能被继承,也不需要通过类来创建对象。在Java中,基本数据类型分为数值类型...

    java基本数据类型与数组

    Java 基本数据类型与数组 Java 中的基本数据类型是指在 Java 中可以使用的最基本的...本章节介绍了 Java 中的基本数据类型、标识符与关键字、类型转换运算、输入与输出和数组等知识点,对于学习 Java 语言非常重要。

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

    ### Java基本类型与Byte数组互相转换 在Java编程语言中,基本类型的变量(如`short`、`int`、`...以上就是Java中基本类型与`byte`数组之间相互转换的方法,这些方法可以帮助开发者更灵活地处理不同类型的数据结构。

    Java实现字节流与图片的转化Java源码

    本教程将详细讲解如何使用Java实现字节流与图片之间的转换,这对于在网络上传输或者存储图片等二进制数据至关重要。 首先,我们需要了解Java中的字节流。Java提供了两种类型的字节流:输入流(InputStream)和输出...

    原始类型 包装类 原始类型所占的字节数

    原始类型(primitive type)是指 Java 中最基本的数据类型,它们是 Java 虚拟机(JVM)中所支持的基本类型。每种原始类型都对应着一个包装类(Wrapper Class),包装类是原始类型的对象表示形式。包装类提供了许多...

    java实现基于netty 的udp字节数据接收服务

    在这个处理器中,你可以解析接收到的字节数据,并执行相应的业务逻辑。 ```java b.handler(new ChannelInitializer() { @Override protected void initChannel(UdpServerChannel ch) throws Exception { ch....

Global site tag (gtag.js) - Google Analytics