当前位置: 首页 > news >正文

Java——进制转换的一些内容

Java——进制转换的一些内容

    • 1.16进制字符串String转字节数组byte[]
    • 2.16进制字符串String转10进制数字int
    • 3.字节数组byte[]转字符串String
    • 4.16进制字符串String-->byte[]-->String(使用ByteBuffer转换)
    • 5.字节数组byte[]转字符数组char[]
    • 6.字节byte转16进制字符串String
    • 7.字节数组byte[]转16进制数字int
    • 8.字节数组byte[]转16进制字符串String

1.16进制字符串String转字节数组byte[]

String hex = "46534E3131323130393031303030313234";
// 把16进制字符串转换为字节数组 [70, 83, 78, 49, 49, 50, 49, 48, 57, 48, 49, 48, 48, 48, 49, 50, 52]
public byte[] hexToBytes(String hex){byte[] bytes = Hex.decode(hex);return bytes;
}

2.16进制字符串String转10进制数字int

String hex = "FFFF";
String hex2 = "0xFFFF";
public int hexToInt(String hex){int n = Integer.parseInt(hex, 16);//int n = Integer.parseInt(hex2.substring(2), 16);return n;
}

3.字节数组byte[]转字符串String

String hex = "46534E3131323130393031303030313234";
byte[] bytes5 = Hex.decode(hex);
String str = new String(bytes5);
public String bytesToString(byte[] bytes){String str = new String(bytes5);return str;
}

4.16进制字符串String–>byte[]–>String(使用ByteBuffer转换)

String hex = "46534E3131323130393031303030313234";
public String hexStringToString(String hex) throws CharacterCodingException {byte[] bytes = HexUtils.fromHexString(hex);// 把byte数组读取到ByteBuffer中ByteBuffer source = ByteBuffer.wrap(bytes);StringBuilder sb = new StringBuilder();//遍历字节数组的长度,把每个字节转成Stringfor (int i = 0; i < bytes.length; i++) {byte[] bytes1 = new byte[1];source.get(bytes1);ByteBuffer buffer1 = ByteBuffer.allocate(1).put(bytes1);buffer1.flip();CharsetDecoder charsetDecoder = StandardCharsets.UTF_8.newDecoder();String s = charsetDecoder.decode(buffer1).toString();sb.append(s);}return sb.toString();
}

5.字节数组byte[]转字符数组char[]

byte[] bytes = new byte[]{35,35};
public char[] bytesToChars(byte[] bytes) {Charset charset = Charset.forName("ISO-8859-1");ByteBuffer byteBuffer = ByteBuffer.allocate(bytes.length);byteBuffer.put(bytes);byteBuffer.flip();CharBuffer charBuffer = charset.decode(byteBuffer);char[] array = charBuffer.array();return array;
}

6.字节byte转16进制字符串String

byte b = Byte.parseByte("1");
public String byteToHexString(byte b) {String str = String.format("0x%02X", b);//需要0x...后面几位数就在最后一个x前面写几,需要字母大写就把最后一个X大写//int c = b & 0xff;//String str = Integer.toHexString(c);//不需要0x,只显示数字return str;
}

7.字节数组byte[]转16进制数字int

byte[] bytes = new byte[]{35,35};
//方法1:10进制byte转16进制字符串,16进制字符串转16进制数字int
public int bytesToInt(byte[] bytes) {StringBuilder stringBuilder = new StringBuilder("");for (int i = 0; i < bytes.length; i++) {int b = bytes[i] & 0xff;String str = Integer.toHexString(b);if (str.length() < 2) {stringBuilder.append(0);}stringBuilder.append(str);}return Integer.parseInt(stringBuilder.toString(),16);
}
//方法2:位运算直接转(数组长度必须小于等于4)
public int bytesToInt(byte[] bytes) {ByteBuffer buffer = ByteBuffer.wrap(bytes);int value = 0;for (int i = 0; i < bytes.length; i++) {value = (value << 8) | (buffer.get() & 0xFF);}return value;
}

8.字节数组byte[]转16进制字符串String

byte[] bytes = new byte[]{35,35};
public String toHexString(byte[] bytes) {if (null == bytes) {return null;}StringBuilder sb = new StringBuilder(bytes.length << 1);for (byte aByte : bytes) {sb.append(hex[(aByte & 0xf0) >> 4]).append(hex[(aByte & 0x0f)]);}return sb.toString();
}
http://www.lryc.cn/news/6998.html

相关文章:

  • 使用 Nodejs、Express、Postgres、Docker 在 JavaScript 中构建 CRUD Rest API
  • 电子招标采购系统源码之什么是电子招投标系统?
  • 匹配文件名称模块glob和fnmatch
  • day12_oop
  • 在 Flutter 中使用 webview_flutter 4.0 | js 交互
  • 嵌入式ARM工业边缘计算机BL302的CAN总线接口如何设置?
  • Win11系统如何安装Ubuntu20.04(WSL版本)并安装docker
  • Elasticsearch和Solr的区别
  • 如何在北京买房
  • 使用Proxifier+burp抓包总结
  • 安装华为aab包的处理方式
  • Word处理控件Aspose.Words功能演示:使用 C++ 将 RTF 文档转换为 PDF
  • 【Java|多线程与高并发】进程与线程的区别与联系
  • K8s手工创建kubeconfig
  • 【SQL开发实战技巧】系列(十七):时间类型操作(下):确定两个日期之间的工作天数、计算—年中周内各日期出现次数、确定当前记录和下一条记录之间相差的天数
  • 代码随想录算法训练营第二十八天 | 491.递增子序列,46.全排列,47.全排列 II
  • 使用 Three.js 后处理的粗略铅笔画效果
  • 推荐一些不常见的搜索引擎
  • RabbitMQ工作模式
  • 机器学习在预测脊髓型颈椎病中的应用:一项28名参与者的事后初步研究
  • 【智能计算数学】微积分
  • win10+RTX4070ti+libtorch部署
  • 【Python百日进阶-Web开发-Vue3】Day518 - Vue+ts后台项目5:用户列表
  • Linux内核转储---kdump原理梳理
  • 【C++】从0到1入门C++编程学习笔记 - 实战篇:演讲比赛流程管理系统
  • 04 OpenCV位平面分解
  • Onvif协议如何判断摄像机支持 —— 筑梦之路
  • 情人节new一个对象给你
  • linux篇【15】:应用层-网络https协议
  • 索引-性能分析-explain