整型int和字节数组byte相互转换
来源:互联网 发布:青山水利软件价格 编辑:程序博客网 时间:2024/05/20 06:31
Java中整型int和字节数组byte相互转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送、者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形int转换成byte数组,同时如何把一个长度为4的byte数组转换为int类型,分别上传Java版本代码和kotlin版本代码(刚学的,试试手,代码运行结果经过校验无误)
Java版本
/** * Created by tao.liu on 2017/6/20 0020. * 整型int和字节数组byte相互转换 */public class Test { public static void main(String[] args) { int data = 212123; System.out.println(data); byte[] toByteArray = toByteArray(data, 4); for (int i = 0; i < toByteArray.length; i++) { System.out.println("["+i+"] = "+toByteArray[i]); } int i = toInt(toByteArray); System.out.println(i); } /** * int数据转数组byte * * @param source * @param len * @return */ public static byte[] toByteArray(int source, int len) { byte[] target = new byte[len]; for (int i = 0; i < 4 && i < len; i++) { target[i] = (byte) (source >> 8 * i & 0xff); } return target; } /** * 数组byte转int数据 * @param source * @return */ public static int toInt(byte[] source) { int target = 0; for (int i = 0; i < source.length; i++) { target += (source[i] & 0xff) << 8 * i; } return target; }}
运行结果:
212123[0] = -101
[1] = 60
[2] = 3
[3] = 0
212123
kotlin版本
import kotlin.experimental.and/** * Created by tao.liu on 2017/6/20 0020. * 整型int和字节数组byte相互转换 */fun main(args: Array<String>) { var data = 212123 println(data) val toByteArray = toByteArray(data, 4) for (b in toByteArray.indices){ print("${toByteArray[b]} ") } println() val toInt = toInt(toByteArray) println(toInt)}/** * int数据转数组byte */fun toByteArray(source: Int, len: Int): ByteArray { var target = byteArrayOf(0,0,0,0) var index = 0 while ((index < 4) && (index < len)) { target[index] = (source.shr(8*index)and 0xff).toByte() index++ } return target}/** * 数组byte转int数据 */fun toInt(source: ByteArray):Int{ var target = 0 var index = 0 while (index<source.size){ target+=(source[index].toInt() and 0xff).shl(8*index) index++ } return target}运行结果:
212123-101 60 3 0 212123
阅读全文
0 0
- 整型int和字节数组byte相互转换
- 整型int和字节数组byte相互转换
- 整型变量(int)与字节数组(byte[])的相互转换
- 整型int和字符数组byte相互转换的源程序
- int和byte数组相互转换
- byte和int相互转换
- java中的int类型和byte数组的相互转换
- byte数组和Int之间的相互转换
- int与byte数组相互转换
- byte数组与int相互转换
- java中 int和byte相互转换
- C# int和byte的相互转换
- C# int和byte的相互转换
- VB 长整型和字节数组的转换问题 (Long<>Byte)
- 字节数组byte[]和整型,浮点型数据的转换——Java代码
- C#--整型与字节数组byte[]之间的转换
- 字节和float int相互转换
- 字节和float int相互转换
- Java常用类
- 快速排序法
- Python 学习日知录(二)- 日志
- 获取ip地址
- 代码规范
- 整型int和字节数组byte相互转换
- 【SEO与页面设置细节】
- HTML&CSS快速入门(二)
- express中创建ejs项目以及引用ejs模板引擎
- 阿里巴巴开源项目nginx_concat_module部署实例
- python 贝叶斯分类
- cglib
- mvn 打包命令
- C语言的输出的规范