java 基本类型与byte[]相互转换
来源:互联网 发布:js 批量 import 编辑:程序博客网 时间:2024/04/29 15:35
//long类型转成byte数组public static byte[] longToBytes(long number) { long temp = number; byte[] b = new byte[8]; for (int i = 0; i < b.length; i++) { b[i] = new Long(temp & 0xff).byteValue();// 将最低位保存在最低位 temp = temp >> 8; // 向右移8位 } return b;}//byte数组转成longpublic static long bytesToLong(byte[] b) { long s = 0; long s0 = b[0] & 0xff;// 最低位 long s1 = b[1] & 0xff; long s2 = b[2] & 0xff; long s3 = b[3] & 0xff; long s4 = b[4] & 0xff;// 最低位 long s5 = b[5] & 0xff; long s6 = b[6] & 0xff; long s7 = b[7] & 0xff; // s0不变 s1 <<= 8; s2 <<= 16; s3 <<= 24; s4 <<= 8 * 4; s5 <<= 8 * 5; s6 <<= 8 * 6; s7 <<= 8 * 7; s = s0 | s1 | s2 | s3 | s4 | s5 | s6 | s7; return s;}public static byte[] intToBytes(int number) { int temp = number; byte[] b = new byte[4]; for (int i = 0; i < b.length; i++) { b[i] = new Integer(temp & 0xff).byteValue();// 将最低位保存在最低位 temp = temp >> 8; // 向右移8位 } return b;}public static int bytesToInt(byte[] b) { int s = 0; int s0 = b[0] & 0xff;// 最低位 int s1 = b[1] & 0xff; int s2 = b[2] & 0xff; int s3 = b[3] & 0xff; s3 <<= 24; s2 <<= 16; s1 <<= 8; s = s0 | s1 | s2 | s3; return s;}//浮点到字节转换public static byte[] doubleToBytes(double d){byte writeBuffer[]= new byte[8]; long v = Double.doubleToLongBits(d); writeBuffer[0] = (byte)(v >>> 56); writeBuffer[1] = (byte)(v >>> 48); writeBuffer[2] = (byte)(v >>> 40); writeBuffer[3] = (byte)(v >>> 32); writeBuffer[4] = (byte)(v >>> 24); writeBuffer[5] = (byte)(v >>> 16); writeBuffer[6] = (byte)(v >>> 8); writeBuffer[7] = (byte)(v >>> 0); return writeBuffer;}//字节到浮点转换public static double bytesToDouble(byte[] readBuffer){ return Double.longBitsToDouble((((long)readBuffer[0] << 56) + ((long)(readBuffer[1] & 255) << 48) + ((long)(readBuffer[2] & 255) << 40) + ((long)(readBuffer[3] & 255) << 32) + ((long)(readBuffer[4] & 255) << 24) + ((readBuffer[5] & 255) << 16) + ((readBuffer[6] & 255) << 8) + ((readBuffer[7] & 255) << 0)) );}
以上代码经过了我测试。请注意double和byte[]的相互转换,目前网上流传最多的那个算法经我测试不能正常工作(当数值小于10.0时),我这个是参考一个VC程序员的代码改成的。
- java 基本类型与byte[]相互转换
- Java基本类型与byte数组之间相互转换
- Java基本类型与byte数组之间相互转换
- Java基本类型与byte数组之间相互转换
- Java基本类型与byte数组之间相互转换
- Java基本类型与byte数组之间相互转换
- Java基本类型与byte数组之间相互转换
- Java 记录java基本类型与Byte数组之间相互转换
- Java类型相互转换byte[]类型,blob类型
- Java String与byte[]的相互转换
- java byte[]与十六进制字符串相互转换
- java实现图片与byte相互转换
- Java字符串与基本类型的相互转换
- java中byte数组与int类型之间的相互转换(两种方式)
- java中byte数组与int类型之间的相互转换(两种方式)
- java中的int类型和byte数组的相互转换
- Java基本类型之间的相互转换
- Java基本类型与类型转换(2)——位操作: byte & 0xff
- jQuery(function(){})与(function(){})(jQuery)的区别
- oralce备份恢复
- Android捕获全局异常信息并实现上传
- android MotionEvent中getX()和getRawX()的区别
- 什么是ARC?
- java 基本类型与byte[]相互转换
- windows系统文件快速查询(全)
- OpenSSH 服务器的 20 个最佳实践
- XCODE4.5 连接SVN
- 64位移植: DLL 和 extern "C"
- Android.mk文件
- 你的背叛,让我自己也背叛了自己:伤感日志
- XMPP协议学习笔记
- horizon错误汇集