Android中 字符串、byte数组、十六进制串、ASCII之间的相互转化
来源:互联网 发布:python 数据写入excel 编辑:程序博客网 时间:2024/05/17 02:36
之前做蓝牙通讯相关项目,搜集的一些方法,在此整理一下,以方便以后的使用。
// byte数组转成字符串 public String btye2Str(byte[] data) { String str = new String(data); return str; } //将byte数组化为十六进制串 public static final StringBuilder byte2hex(byte[] data) { StringBuilder stringBuilder = new StringBuilder(data.length); for (byte byteChar : data) { stringBuilder.append(String.format("%02X ", byteChar).trim()); } return stringBuilder; } //将byte数组转化成浮点数(4个字节带小数的浮点数) public static float byte2int_Float(byte b[]) { int bits = b[3] & 0xff | (b[2] & 0xff) << 8 | (b[1] & 0xff) << 16 | (b[0] & 0xff) << 24; int sign = ((bits & 0x80000000) == 0) ? 1 : -1; int exponent = ((bits & 0x7f800000) >> 23); int mantissa = (bits & 0x007fffff); mantissa |= 0x00800000; // Calculate the result: float f = (float) (sign * mantissa * Math.pow(2, exponent - 150)); return f; } //十六进制串转化为byte数组 public static final byte[] hex2byte(String hex) throws IllegalArgumentException{ if (hex.length() % 2 != 0) { throw new IllegalArgumentException(); } char[] arr = hex.toCharArray(); byte[] b = new byte[hex.length() / 2]; for (int i = 0, j = 0, l = hex.length(); i < l; i++, j++) { String swap = "" + arr[i++] + arr[i]; int byteint = Integer.parseInt(swap, 16) & 0xFF; b[j] = new Integer(byteint).byteValue(); } return b; } //将字符串转成ASCII值 public static String strToASCII(String data) { String requestStr = ""; for (int i = 0; i < data.length(); i++) { char a = data.charAt(i); int aInt = (int) a; requestStr = requestStr + integerToHexString(aInt); } return requestStr; } //将十进制整数转为十六进制数,并补位 public static String integerToHexString(int s) { String ss = Integer.toHexString(s); if (ss.length() % 2 != 0) { ss = "0" + ss;//0F格式 } return ss.toUpperCase(); }
阅读全文
1 0
- Android中 字符串、byte数组、十六进制串、ASCII之间的相互转化
- 十六进制字符串和byte数组的相互转化
- Android中Bitmap,byte[],Drawable之间的相互转化
- Java中字符串与byte数组之间的相互转换
- java中byte数组与十六进制字符串相互转换
- 字符串与十六进制与byte和十进制之间的转化
- 字符串与十六进制与byte和十进制之间的转化
- 十六进制字符串(CString或char[]) 和 BYTE,char数组 相互转化
- 十六进制字符串(CString或char[]) 和 BYTE,char数组 相互转化
- 十六进制字符串和byte数组之间的各种转换关系
- C++中ASCII、unicode与Utf8之间的相互转化
- C++中ASCII、unicode与Utf8之间的相互转化
- C++中ASCII、unicode与Utf8之间的相互转化
- android----Bitmap / Drawable / byte[] 之间相互转化
- 字节数组与十六进制字符串之间的相互转换
- 将byte[]转化十六进制的字符串
- File,byte,Object之间的相互转化
- Android字节、十进制、十六进制、字符串之间的相互转换
- LINUX中错误 SELinux is disabled
- C++ 一个例子说明.c_str()函数
- linux中创建图片服务器减轻传统服务器的压力
- 学习Nginx之理解正向代理和反向代理
- USB描述符
- Android中 字符串、byte数组、十六进制串、ASCII之间的相互转化
- 多线程下单例模式:懒加载(延迟加载)和即时加载
- zigbee 3.0 来袭,互联互通可期
- 注解方式定义的spring component打jar后,扫描失败的可能原因
- eclipse加载maven工程提示pom.xml无法解析org.apache.maven.plugins:maven-resources-plugin:2.4.3解决方案
- insertRowsIntoSpace
- Mac idea 启动SpringBoot 项目慢解决方法
- 23. Merge k Sorted Lists
- 链接法散列表的 java 实现