- 浏览: 684533 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (297)
- J2SE (78)
- swt/飞信 (20)
- mysql/mssql (17)
- 设计模式 (5)
- windows (18)
- 闲言碎语 (19)
- struts 1.x (6)
- JVM (6)
- tomcat/jetty (8)
- jquery/javascript (15)
- web前端 (6)
- J2EE (0)
- PHP (6)
- 算法设计 (17)
- 数据结构 (3)
- C/C++ (6)
- linux (19)
- 程序打包 (8)
- eclipse/myeclipse (10)
- 其他杂项 (13)
- 应聘 (9)
- spring/spring mvc (4)
- Maven/Ant (2)
- ERROR (1)
- nosql/hbase (1)
- hibernate (3)
- Solr/Lucene (1)
最新评论
-
乔木1937:
太感谢了,看到你的文章终于解决这个问题了!
[转载]通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败。错误:“Connection refused: connect。 -
xianweisi:
竟然还有马
精简JRE - 实例Swing计算器 with 精简JRE(续) -
Javkburd:
我刚也遇到这个问题,然后也把默认端口改成了1433,只差最后没 ...
[转载]通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败。错误:“Connection refused: connect。 -
yeshaoting:
kingbinchow 写道 最近的爪哇岛 没有什么货进项呀 ...
jQuery方法区别(四)click() bind() live() delegate()区别 -
kingbinchow:
最近的爪哇岛 没有什么货进项呀!
jQuery方法区别(四)click() bind() live() delegate()区别
整数转换成字节型数组
描述:
整数(int,long,大整数)转换成字节型数组(byte[])
方法一
利用java.math.BigInteger的toByteArray()方法,将数值转换成字节型数组byte[]。
主要代码:
/** * Copyright (c) 2011 Trusted Software and Mobile Computing(TSMC) * All rights reserved. * Author: Jarg Yee <yeshaoting@gmail.com> * http://jarg.iteye.com/ */ import java.math.BigInteger; /* * 整数(int,long,大整数)转换成字节型数组(byte[]) */ public class IntegerToByteArrayUtil { /** for debugging. */ public static void main(String[] args) { BigInteger bigInteger = null; // bigIntegerToByteArray String bigNumber = "" + Long.MAX_VALUE/50 + Long.MAX_VALUE/50;// 一个测试大整型数 bigInteger = new BigInteger(bigNumber.toString()); byteArrayToString(bigInteger.toByteArray()); // 转换 // longToByteArray Long longNumber = Long.MAX_VALUE/50; // 一个测试长整型数 bigInteger = new BigInteger(longNumber.toString()); byteArrayToString(bigInteger.toByteArray()); // 转换 // intToByteArray Integer intNumber = Integer.MAX_VALUE/50; // 一个测试整型数 bigInteger = new BigInteger(intNumber.toString()); byteArrayToString(bigInteger.toByteArray()); // 转换 } /** 字节数组字符串显示 */ private static void byteArrayToString(byte[] byteArray) { System.out.print("byte[" + byteArray.length + "] = \t"); for(byte byteValue : byteArray) { System.out.print(byteValue + "\t"); } System.out.println(); System.out.println("*******************************"); } }
---------- 运行Java ----------
byte[15] = 35 -122 -14 111 -63 0 0 0 86 -19 1 -7 -78 -113 92
*******************************
byte[8] = 2 -113 92 40 -11 -62 -113 92
*******************************
byte[4] = 2 -113 92 40
*******************************
输出完成 (耗时 0 秒) - 正常终止
方法二
利用移位和与0xFF按位与操作,每8位地获取数据存入字节数组,将数值转换成字节型数组byte[]。
主要代码:
/** * Copyright (c) 2011 Trusted Software and Mobile Computing(TSMC) * All rights reserved. * Author: Jarg Yee <yeshaoting@gmail.com> * http://jarg.iteye.com/ */ /* * 整数(int,long)转换成字节型数组(byte[]) */ public class IntegerToByteArrayUtil2 { private static final byte byteLength = 8; // 字节位长 /** for debugging. */ public static void main(String[] args) { Long longNumber = Long.MAX_VALUE/50; // 一个测试整型数 Integer intNumber = Integer.MAX_VALUE/50; // 一个测试整型数 byteArrayToString(numberToByteArray(longNumber)); byteArrayToString(numberToByteArray(intNumber)); } /** 数值转换成字节型数组 */ private static byte[] numberToByteArray(Object number) { if(number instanceof Long) { return longToByteArray((Long)number, 8); } else if(number instanceof Integer) { return intToByteArray((Integer)number, 4); } else { return null; } } /* 整型32bit转换成字节型8bit数组 @param number 待求数值 @param length 数值所占字节数 */ private static byte[] intToByteArray(int number, int length) { byte[] byteArray = new byte[length]; int shiftNum = 0; // 移位数 for(int i=0; i<length; i++) { shiftNum = (length-i-1)*byteLength; byteArray[i] = (byte)((number >> shiftNum) & 0xFF); } return byteArray; } /* 整型64bit转换成字节型8bit数组 @param number 待求数值 @param length 数值所占字节数 */ private static byte[] longToByteArray(long number, int length) { byte[] byteArray = new byte[length]; int shiftNum = 0; // 移位数 for(int i=0; i<length; i++) { shiftNum = (length-i-1)*byteLength; byteArray[i] = (byte)((number >> shiftNum) & 0xFF); } return byteArray; } /** 字节数组字符串显示 */ private static void byteArrayToString(byte[] byteArray) { System.out.print("byte[] = \t"); for(byte byteValue : byteArray) { System.out.print(byteValue + "\t"); } System.out.println(); System.out.println("*******************************"); } }
运行结果:
---------- 运行Java ----------
byte[] = 2 -113 92 40 -11 -62 -113 92
*******************************
byte[] = 2 -113 92 40
*******************************
输出完成 (耗时 0 秒) - 正常终止
方法三
利用ByteArrayOutput的toByteArray()方法。先将整数写入到字节流中,然后通过该类的toByteArray()方法,将流中的整数转换成字节型数组。
主要代码:
/** * Copyright (c) 2011 Trusted Software and Mobile Computing(TSMC) * All rights reserved. * Author: Jarg Yee <yeshaoting@gmail.com> * http://jarg.iteye.com/ */ import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.io.IOException; /* * 整数(int,long)转换成字节型数组(byte[]) */ public class IntegerToByteArrayUtil3 { /** for debugging. */ public static void main(String[] args) throws Exception { Long longNumber = Long.MAX_VALUE/50; // 一个测试整型数 Integer intNumber = Integer.MAX_VALUE/50; // 一个测试整型数 byteArrayToString(numberToByteArray(longNumber)); byteArrayToString(numberToByteArray(intNumber)); } /** 数值转换成字节型数组 */ private static byte[] numberToByteArray(Object number) throws Exception { if(number instanceof Long) { return longToByteArray((Long)number); } else if(number instanceof Integer) { return intToByteArray((Integer)number); } else { return null; } } /** 整型32bit转换成字节型8bit数组 */ private static byte[] intToByteArray(int number) throws Exception { ByteArrayOutputStream byteOutput = new ByteArrayOutputStream(); DataOutputStream out = new DataOutputStream(byteOutput); out.writeInt(number); // 写入到字节流 byte[] byteArray = byteOutput.toByteArray(); // 转换 byteOutput.close(); out.close(); return byteArray; } /** 长整型64bit转换成字节型8bit数组 */ private static byte[] longToByteArray(long number) throws Exception { ByteArrayOutputStream byteOutput = new ByteArrayOutputStream(); DataOutputStream out = new DataOutputStream(byteOutput); out.writeLong(number); // 写入到字节流 byte[] byteArray = byteOutput.toByteArray(); // 转换 byteOutput.close(); out.close(); return byteArray; } /** 字节数组字符串显示 */ private static void byteArrayToString(byte[] byteArray) { System.out.print("byte[" + byteArray.length + "] = \t"); for(byte byteValue : byteArray) { System.out.print(byteValue + "\t"); } System.out.println(); System.out.println("*******************************"); } }
运行结果:
---------- 运行Java ----------
byte[8] = 2 -113 92 40 -11 -62 -113 92
*******************************
byte[4] = 2 -113 92 40
*******************************
输出完成 (耗时 0 秒) - 正常终止
发表评论
-
Java - Convert String to enum
2012-11-17 22:03 1907http://stackoverflow.com/que ... -
[ERROR]Premature end of file
2012-09-28 11:41 3326[ERROR]Premature end of file ... -
测试java.util.Map.Entry
2012-07-18 16:13 1017/** * Copyright (c) 201 ... -
关于eclipse启动出错问题的解决办法
2012-06-09 09:31 1475转自:http://blog.csdn.net/jkpt ... -
Myeclipse中把java代码导成UML类图
2012-05-18 14:53 2369MyEclipse 中选择window,在 Open ... -
[转载]java synchronized详解
2012-05-15 17:18 866http://www.cnblogs.com ... -
[转载]Java 根据 HashMap 的 value 进行排序
2012-05-08 09:58 949转载:http://www.oschina.net/co ... -
JAVA实时屏幕监控
2012-04-29 16:13 3315JAVA实时屏幕监控 说明: 本程序会运 ... -
[JAVA实时屏幕监控]JAVA使用Internet代理设置
2012-04-29 14:50 1383JAVA使用Internet代理设置 描述:首先 ... -
[JAVA实时屏幕监控]JAVA通过注册表获取Internet代理设置
2012-04-29 14:47 2333JAVA通过注册表获取Internet代理设置 ... -
[JAVA实时屏幕监控]JAVA发送邮件
2012-04-29 14:28 2499JAVA发送邮件 描述:利用commons-em ... -
[JAVA实时屏幕监控]JAVA屏幕截图
2012-04-29 14:19 1313JAVA屏幕截图 /** * 产生截图 ... -
[JAVA实时屏幕监控]Java使用代理服务器
2012-04-24 13:36 2488/** * Copyright (c) 2012 T ... -
java.util.ConcurrentModificationException解决办法
2012-04-23 10:47 1576java.util.ConcurrentModi ... -
[转载]java.util.ConcurrentModificationException
2012-04-23 09:20 974java.util.ConcurrentModif ... -
java.lang.NoClassDefFoundError: javax/mail/Message解决方法
2012-04-18 10:33 1263缺少activation.jar 和 mail.jar ... -
设置javax.swing.JFrame窗口外观
2012-03-29 15:34 0设置javax.swing.JFrame窗口外 ... -
设置javax.swing.JFrame窗口外观
2012-03-29 15:34 0设置javax.swing.JFrame窗口 ... -
Java图形界面外观包substance.jar
2012-03-29 15:33 0一直以来都认为用Swing做出来的程序 ... -
[转载]使用JAVA读写Properties属性文件
2012-03-29 12:11 1086Properties属性文件在JAVA应用程序中是经常可以 ...
相关推荐
在某些情况下,我们需要将字节集的数据转换成字节型数组,以便进行特定的操作,如解析结构体或与C/C++等其他语言进行接口通信。 在易语言中实现字节集到字节型数组的转换,通常涉及以下几个步骤: 1. **创建字节型...
在易语言中,我们经常需要将整数转换为字节数组,以便进行进一步的处理或传递。这个过程通常涉及数据的位运算和数组操作。例如,一个32位的整数在内存中占据4个字节,从高位到低位分别是最高有效位(MSB)到最低有效...
字节集是易语言中一种存储二进制数据的集合,可以理解为一个字节数组。它允许我们在不预先知道具体长度的情况下动态地添加、删除或访问字节。字节集常用于处理二进制文件、网络数据传输等场合。 2. 字节型数组: ...
在实际编程中,根据需求,有时我们需要将字节集转换为字节数组,或者反过来,以便进行各种数据处理。 转换的核心在于理解这两种数据类型的本质和特性。字节集是易语言特有的数据结构,它以集合的形式存储字节,不...
在这个“易语言字节型数组演示”中,我们将探讨字节型数组的使用,包括字节集的插入、排序以及如何将字节集转换成字节型数组。 首先,字节型数组在易语言中是存储二进制数据的基本数据类型,通常用于处理底层的内存...
6. **转换其他数据类型**:易语言允许将字节型数组与其他数据类型相互转换,例如转换为整数或字符串。转换为整数: ```易语言 .整数 数值 数值 = 字节集转整数(我的字节集, 0, 4, 1) // 以字节集的前4个字节转换为...
在这种情况下,我们有一个专门处理整数到字节数组转换的全局FC,它可以方便地集成到你的程序中,无需从头编写相同的转换逻辑。 要理解这个过程,首先我们需要知道整数是如何存储的。在二进制系统中,整数由最高位的...
LabVIEW程序,功能:将4字节的unsigned char输入组合成1个32-bit int值,若输入字节数不等于4则报错。
在这个源码中,`字节集变量`是待转换的字节集,`变量_字节数组`则是转换后的字节型数组。这段代码首先获取字节集的大小,然后定义一个相应长度的字节型数组。接着,通过循环将字节集中的每个字节复制到字节型数组中...
6. **数据转换**:如何将其他类型的数据(如整数、浮点数)转换为字节型数组,以及反向操作,即从字节型数组中恢复原始数据。 学习这个源码示例,用户不仅可以掌握易语言中字节型数组的基础操作,还能了解到如何在...
或者将字符串转换成字节数组,写入二进制文件。 示例: ```vb ' 读取二进制文件到字节数组 Open "binaryfile.bin" For Binary As #1 Dim fileByteArray() As Byte ReDim fileByteArray(LOF(1) - 1) Get #1, , ...
为了实现这一功能,通常的做法是将文件内容转换为字节数组(byte array),再传递给后端进行进一步处理。这种方式不仅适用于Web应用程序,也便于与桌面应用程序保持一致的接口设计。本文将详细介绍如何使用...
在“易语言源码易语言整数到字节数组源码.rar”这个压缩包中,我们可以看到一个关于将整数转换成字节数组的源代码实现。这是一个基础但非常实用的编程任务,特别是在处理二进制数据或网络通信时。下面将详细介绍这个...
长整数转换为字节集,意味着将长整数的二进制表示拆分成单独的字节,并存储在一个字节数组中。这对于处理底层的二进制数据交换非常有用。 在实际操作中,实现长整数到十六进制和字节集的转换,可能需要以下步骤: ...
### J2ME 字符型转化成字节数组 #### 知识点一:J2ME简介 J2ME(Java 2 Platform, Micro Edition)是Sun Microsystems为嵌入式和移动设备设计的一种Java平台。它包括了一套适用于资源受限设备(如手机、PDA和个人...
C语言中的`unsigned char`类型通常用来表示8位的二进制数,刚好对应一个字节,可以存储0到255之间的整数值,足够表示RGB的一个分量。因此,我们创建一个三维数组,如`unsigned char image[宽度][高度][3]`,其中`...
将 整数型 到 字节集 阵列元素[循环索引], 数组字节集, 4 // 将整数转换为字节集 .end循环 .写文件 “数组保存.txt”, 数组字节集 // 将字节集写入文件 ``` 然后,我们来看数组的恢复。恢复数组时,我们需要从文件...
labview 读取的一维数组(整数)转换成16进制的字符串,方便大家进行数据处理。有问题可以留言咨询,互相学习
3. 序列化与反序列化:将整形数组转换为字符数组的过程可以看作是序列化,即将结构化的数据转化为字节流,方便存储或传输。反之,将字符数组还原为整形数组是反序列化,即从字节流中恢复原始数据结构。 4. 数据库...
在跨语言通信或数据交换中,尤其是在涉及到C#与C++之间进行TCP通信时,由于两者数据表示方式的差异,可能会遇到将C#中的结构体转换为C++可理解的字节数组,或者反过来的过程。本文将详细介绍如何在C#中实现结构体与...