Android开发中十六进制字符串的各种转换

在我们进行开发中,会遇到将16进制转换为各种形式,今天我们就详细的讲解一下:

1、十六进制字符串转byte[]

public static byte[] hexStringToBytes(String hexString) {if (hexString == null || hexString.equals("")) {return null;}hexString = hexString.trim();hexString = hexString.toUpperCase();int length = hexString.length() / 2;char[] hexChars = hexString.toCharArray();byte[] d = new byte[length];for (int i = 0; i < length; i++) {int pos = i * 2;d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1]));}return d;
}public static byte charToByte(char c) {return (byte) "0123456789ABCDEF".indexOf(c);
}

2、byte[]转十六进制字符串

public static String bytesToHexString(byte[] b) {if (b.length == 0) {return null;}StringBuilder sb = new StringBuilder();for (byte item : b) {int value = item & 0xFF;String hv = Integer.toHexString(value);if (hv.length() < 2) {sb.append(0);}sb.append(hv);}return sb.toString();
}

3、十六进制字符串 高低位转换

public static String reverseHex(String hex) {char[] charArray = hex.toCharArray();int length = charArray.length;int times = length / 2;for (int c1i = 0; c1i < times; c1i += 2) {int c2i = c1i + 1;char c1 = charArray[c1i];char c2 = charArray[c2i];int c3i = length - c1i - 2;int c4i = length - c1i - 1;charArray[c1i] = charArray[c3i];charArray[c2i] = charArray[c4i];charArray[c3i] = c1;charArray[c4i] = c2;}return new String(charArray);
}

4、十六进制字符串转换为float符点型

public static long parseLong(String s, int radix) throws NumberFormatException {if (s == null) {throw new NumberFormatException("null");}if (radix < Character.MIN_RADIX) {throw new NumberFormatException("radix" + radix + "less than Character.MIN_RADIX");}if (radix > Character.MAX_RADIX) {throw new NumberFormatException("radix" + radix + "greater than Character.MAX_RADIX");}long result = 0;boolean negative = false;int i = 0, len = s.length();long limit = -Long.MAX_VALUE;long multmin;int digit;if (len > 0) {char firstChar = s.charAt(0);if (firstChar < '0') {// Possible leading "+" or "-"if (firstChar == '-') {negative = true;limit = Long.MIN_VALUE;} else if (firstChar != '+')throw NumberFormatException.forlnputString(s);if (len == 1) // Cannot have lone "+" or "-"throw NumberFormatException.forlnputString(s);i++;}multmin = limit / radix;while (i < len) {// Accumulating negatively avoids surprises near MAX_VALUEdigit = Character.digit(s.charAt(i++), radix);if (digit < 0) {throw NumberFormatException.forlnputString(s);}if (result < multmin) {throw NumberFormatException.forlnputString(s);}result *= radix;if (result < limit + digit) {throw NumberFormatException.forlnputString(s);}result -= digit;}} else {throw NumberFormatException.forlnputString(s);}return negative ? result : -result;
}/*** NuberFormatException*/
public static class NumberFormatException extends IllegalAccessException {/****/private static final long serialVersionUID = 1L;public NumberFormatException(String s) {super(s);}static NumberFormatException forlnputString(String s) {return new NumberFormatException("For input string: \"" + s + "\"");}
}

以上就是讲解的主要的转换方式,以供大家参考。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/220651.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IDEA版SSM入门到实战(Maven+MyBatis+Spring+SpringMVC) -Spring管理第三方bean

第一章 Spring管理第三方bean 1.1 Spring管理druid步骤 导入jar包 <!--导入druid的jar包--><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.10</version></dependency><!-…

2024上海智慧城市展会(世亚智博会)促进长三角地区智慧城市发展

上海市政府近期印发的《上海市进一步推进新型基础设施建设行动方案(2023-2026年)》标志着新一轮新基建的全面启动。市政府副秘书长、市发展改革委主任顾军指出&#xff0c;这一行动方案紧抓智能算力、大模型、数据要素、区块链、机器人等技术发展趋势和绿色低碳节能要求&#x…

ceph 12版本命令

目录 一、osd操作相关删除osd调整OSD的恢复等级 二、host操作相关删除没有osd的host将host移动到对应的bucket中 一、osd操作相关 删除osd ceph osd down <X> ceph osd out <X> ceph osd rm <X> ceph auth del <osd.X> ceph osd crush rm <osd.X&…

01 python 入门语法

1.1 python中的自变量 # 定义一个变量来记录钱包的余额 money 50 # 通过print语句来展示&#xff08;输出&#xff09;变量记录的内容 print(钱包还有:,money) # 买花花费10元 money - 10 # 输出钱包剩余多少钱 print(钱包还有:,money)# 假设一小时就输出一次钱包余额 &#…

【LeetCode:2132. 用邮票贴满网格图 | 二维前缀和 + 二维差分和】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

达索系统SOLIDWORKS 2024 Visualize新功能

SOLIDWORKS Visualize&#xff08;原名为 Bunkspeed&#xff09;是一整套独立的软件工具&#xff0c;Visualize模块主要是用于对SOLIDWORKS设计出的产品图进行渲染、做动画&#xff0c;方便用户更好的展示、宣传产品&#xff1b;以最快速、最轻松的方式创建专业的照片级图像、动…

基于YOLOv8深度学习的水稻害虫检测与识别系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

代码随想录Day51—— 309.最佳买卖股票时机含冷冻期 714.买卖股票的最佳时机含手续费

309.最佳买卖股票时机含冷冻期 给定一个整数数组prices&#xff0c;其中第 prices[i] 表示第 i 天的股票价格 。​ 设计一个算法计算出最大利润。在满足以下约束条件下&#xff0c;你可以尽可能地完成更多的交易&#xff08;多次买卖一支股票&#xff09;: 卖出股票后&…

《使用ThinkPHP6开发项目》 - 登录接口三【表单验证】

《使用ThinkPHP6开发项目》 - 登录接口一-CSDN博客 https://blog.csdn.net/centaury32/article/details/134974860 在设置用户登录时&#xff0c;由于安全问题会对登录密码进行加密 表单验证这里也可以使用ThinkPHP6自带的验证规则&#xff0c;创建一个验证管理员的文件 ph…

MYSQL各种日志

感谢B站up主的视频分享 黑马程序员 MySQL数据库入门到精通&#xff0c;从mysql安装到mysql高级、mysql优化全囊括_哔哩哔哩_bilibili

IDEA版SSM入门到实战(Maven+MyBatis+Spring+SpringMVC) -Spring依赖注入方式

第一章 Spring依赖注入方式【基于XML】 为属性赋值方式 通过xxxset()方法通过构造器反射 1.1 set注入 语法&#xff1a;<property> 1.2 构造器注入 语法&#xff1a;<constructor-arg> 1.3 p名称空间注入 导入名称空间&#xff1a;xmlns:p“http://www.springf…

2023 亚马逊云科技 re:Invent 大会探秘:Aurora 无限数据库的突破性应用

文章目录 一、前言二、Amazon Aurora 无限数据库2.1 亚马逊云科技数据库产品发展历程2.2 什么是 Amazon Aurora Limitless Database&#xff08;无限数据库&#xff09;2.3 Amazon Aurora Limitless Database 设计架构2.4 Amazon Aurora Limitless Database 分片功能2.5 使用 A…

xtu oj 1194 Recipient

题目描述 快递小哥每天都辛苦的送快递&#xff0c;今天他需要送N份快递给N个收件人&#xff0c;第i份快递需要送给第i个收件人。 请问其中发生恰好K个送错了的情况数是多少&#xff1f; 输入 存在多样例。 每行输入两个整数N和K&#xff0c;1≤N≤1000,0≤K≤N。 如果两个都…

pytorch中的归一化:BatchNorm、LayerNorm 和 GroupNorm

1 归一化概述 训练深度神经网络是一项具有挑战性的任务。 多年来&#xff0c;研究人员提出了不同的方法来加速和稳定学习过程。 归一化是一种被证明在这方面非常有效的技术。 1.1 为什么要归一化 数据的归一化操作是数据处理的一项基础性工作&#xff0c;在一些实际问题中&am…

SpringBoot - 事件机制使用详解(ApplicationEvent、ApplicationListener)

SpringBoot - 事件机制使用详解&#xff08;ApplicationEvent、ApplicationListener&#xff09; Spring 事件机制使用观察者模式来传递事件和消息。我们可以使用 ApplicationEvent 类来发布事件&#xff0c;然后使用 ApplicationListener 接口来监听事件。当事件发生时&#…

程序员月经焦虑 :如何成为高级工程师

高级工程师意味着什么&#xff1f; ChatGPT的回复&#xff1a;高级工程师对编程语言、软件设计原则和开发方法有深刻的理解。 开发方法 开发方法学是旨在使团队有效的组织方法。这些对我们来说可能很无聊&#xff0c;但我们希望你在这方面有专业知识。 我已经对非敏捷开发方法…

SAHI强化YOLOv5在小目标上的表现

文章目录 环境前言安装sahiyolov5检测sahi添加新的检测模型 环境 ubuntu 18.04 64bitsahi 0.8.4yolov5 5.0pytorch 1.7.1cu101 前言 目标检测和实例分割是迄今为止计算机视觉中最重要的应用领域&#xff0c;各种目标检测网络层出不穷&#xff0c;然而&#xff0c;小目标的检…

速卖通(AliExpress)店铺流量怎么转化?自养号测评策略

随着全球电商的蓬勃发展&#xff0c;速卖通&#xff08;AliExpress&#xff09;作为中国领先的跨境电商平台&#xff0c;为卖家提供了一个广阔的销售舞台。然而&#xff0c;对于卖家来说&#xff0c;如何让速卖通店铺实现转化&#xff0c;吸引更多的买家成为关键。 一、速卖通…

Docker 与 Podman:揭示容器编排的最佳 25 大常见问题解答

让我们告诉你一件事。 这不仅仅是这两个强大平台之间的普通比较。 相反&#xff0c;我们分析并列出了有关 Docker 与 Podman 的最紧迫问题。 但这里有一件事——这些问题不仅被技术角度所包围。 我们还深入研究了业务环境&#xff0c;因为我们知道这不仅仅是关于代码。这是…

javaweb `jdbc.properties`文件编写

问题&#xff1a;查询数据库查不到&#xff0c;大概率是两者编码对应不上&#xff1f; 问题描述&#xff1a; 从数据库查询这一句&#xff0c;但数据库是有这个值的。 解决办法&#xff1a; 这是jdbc.properties里面写的内容 drivercom.mysql.jdbc.Driverurljdbc:mysql://12…