字节数组byte[]和整型,浮点型数据的转换——Java代码

这篇博客主要介绍了在Java中如何进行字节数组byte[]与整型、浮点型数据之间的转换,重点讨论了整数和浮点数的机器表示、小端法和大端法以及主机字节顺序和网络字节顺序的概念。文中提供了Java代码示例,转换过程中采用了大端顺序。
摘要由CSDN通过智能技术生成

最近在写C++ socket和java socket之间的通信程序,涉及到整数浮点数的传输,需要从字节数组还原数据,查了一些资料,总结如下

1.       整数和浮点数的机器表示

在机器内部,不论是一个整数还是浮点数,都是以一个二进制串的形式存储。

整数可能是原码,补码表示,浮点数有阶码尾数两部分构成,无论怎样都是一个二进制串,但是这个二进制串如何表示不同的机器可能采取不同的方案。

关于浮点数:

一个机器上的32位浮点数的二进制串在另一个机器把它作为32位浮点数解释时可能得到不同的值,这样不同机器上进行网络传输的时候,大概就只能用传字符串的方式了,不过幸好,IEEE 754规范标准化了浮点数的表示形式,遵从这个标准的不同编程语言里只要遵从这个标准,那么某个浮点数的32位二进制串都是一样的,,,和CPU无关,和语言无关

关于整数 :

    单个字节的整型值就是一个字节;占用多个字节的整数,其表示有所区别,有所谓的小端法,大端法,具体表示可以看下面的图。

2.      小端法、大端法和主机字节顺序、网络字节顺序

小端法和大端法如图所示

 

网络字节序就是大端顺序,因为TCP/IP首部中所有的二进制整数在网络中传输时都要求以这种次序,因此它又称作网络字节序。

主机字节顺序就是指相对于网络传输是的字节顺序的主机上的字节顺序,有大端表示法,小端表示法。

 

3.      下面给出java中的基本数据类型和字节数组byte[]之间的转换代码

 

本文中byte[]的顺序按照“大端顺序”,这句话的意思是说对于整数0x11223344

byte[0]保存0x11,byte[1]保存0x22,byte[2]保存0x33,byte[

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值