byte[]与short、int、long、float、double的互换
来源:互联网 发布:知乎 俄罗斯 计算机 编辑:程序博客网 时间:2024/05/21 10:55
import java.util.Locale;
public class Tool {
/** 低位在前,byte转unsigned byte* */public static int byteToInt(byte b) { return b & 0xFF;}/** 低位在前,bytes转short* */public static short byteArrayToShort(byte[] bytes, int startPos) { if (bytes == null || startPos < 0) return 0; short s = 0; int b0 = byteToInt(bytes[startPos]); int b1 = byteToInt(bytes[startPos + 1]); s = (short) (b0 + (b1 << 8)); return s;}/** 低位在前,bytes转int* */public static int byteArrayToInt(byte[] bytes, int startPos) { if (bytes == null || startPos < 0) return 0; int i = 0; for (int k = 0; k < 4; k++) { i |= (byteToInt(bytes[startPos + k]) << (8 * k)); } return i;}/** 低位在前,bytes转long* */public static long byteArrayToLong(byte[] bytes, int startPos) { if (bytes == null || startPos < 0) return 0; long l = 0; for (int i = 0; i < 8; i++) { l |= (long) ((bytes[i] & 0xFF) << (8 * i)); } return l;}/** 低位在前,bytes转float* */public static float byteArrayToFloat(byte[] bytes, int startPos) { if (bytes == null || startPos < 0) return 0; float f = 0; f = Float.intBitsToFloat(byteArrayToInt(bytes, startPos)); return f;}/*
* 低位在前,bytes转double
* */
public static double byteArrayToDouble(byte[] bytes, int startPos) {
if (bytes == null || startPos < 0) return 0;
long value = 0;
for (int i = 0; i < 8; i++) {
value |= ((long) (bytes[i] & 0xFF)) << (8 * i);
}
return Double.longBitsToDouble(value);
}
/* * short转bytes,bytes中高位在前 * */public static boolean shortToByteArray(short value, byte[] target, int startPos) { if (target == null || startPos < 0) return false; target[startPos] = (byte) (value >> 8); target[startPos + 1] = (byte) value; return true;}/* * int转bytes,bytes中高位在前 * */public static boolean intToByteArray(int value, byte[] target, int startPos) { if (target == null || startPos < 0) return false; target[startPos] = (byte) (value >> 24); target[startPos + 1] = (byte) (value >> 16); target[startPos + 2] = (byte) (value >> 8); target[startPos + 3] = (byte) value; return true;}/* * long转bytes,bytes中高位在前 * */public static boolean longToByteArray(long value, byte[] target, int startPos) { if (target == null || startPos < 0) return false; for (int i = 0; i < 8; i++) { target[startPos + i] = (byte) (value >> (8 * (7 - i))); } return true;}/* * float转bytes,bytes中高位在前 * */public static boolean floatToByteArray(float value, byte[] target, int startPos) { if (target == null || startPos < 0) return false; int i = Float.floatToIntBits(value); intToByteArray(i, target, startPos); return true;}/** double转bytes,bytes中高位在前* */public static boolean doubleToByteArray(double value, byte[] target, int startPos) { if (target == null || startPos < 0) return false; long l = Double.doubleToLongBits(value); longToByteArray(l, target, startPos); return true;}
}
阅读全文
0 0
- byte[]与short、int、long、float、double的互换
- byte short int long float double
- short,int,long,double,string,float与byte数组之间的转换
- Java中byte数组与short,int,char,long,float,double之间的转换
- Java中byte数组与short,int,char,long,float,double之间的转换
- java 彻底理解 byte char short int float long double
- java 彻底理解 byte char short int float long double
- java 彻底理解 byte char short int float long double
- java 彻底理解 byte char short int float long double
- java:byte short int long float double char
- java 彻底理解 byte char short int float long double
- java 彻底理解 byte char short int float long double
- java 彻底理解 byte char short int float long double
- short int、long、float、double
- short,int,float,long,double
- java Byte和各数据类型(short,int,long,float,double)之间的转换
- java中byte、short、int、long、float、double类型的取值范围
- java Byte和各数据类型(short,int,long,float,double)之间的转换
- LinuxStudyNote(18)-Linux常用命令(2)-文件处理命令(13)-文件显示(4)-less分页显示文件内容往前翻页以及内容查找
- 扰心的总结
- 杨辉三角问题 Java和Python实现
- 【笔记】java8中List分组方法的使用
- hdu 1423 dp 求最长公共上升子序列
- byte[]与short、int、long、float、double的互换
- 使用Linux服务器后台运行程序
- 作用域
- [hdu2196]Computer(树形dp)
- caffe-ristretto:可以定点的层目录
- 简单的轮播图
- 离散PID基础知识
- 开源大数据生态圈
- file