java 二进制与十六进制相互转换 20255227编辑
Heaven helps those who help themselves
资深码农+深耕理财=财富自由
欢迎关注
资深码农+深耕理财=财富自由
欢迎关注

java 二进制与十六进制相互转换
Created by Marydon on 2022-04-06 09:03
1.情景展示
2进制如何转16进制?
16进制如何转成2进制?
2.具体分析
二进制:用0和1表示(最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小);
十六进制:10个阿拉伯数字(0~9)和6个英文字母(a~f)共计16个字符表示。
3.解决方案
二进制转十六进制
/* * 二进制转十六进制 * @description: * @date: 2022/4/1 16:11 * @param: binary 二进制 * @return: java.lang.String 16进制字符串 */ @NotNull public static String toHexString(String binary) { if (StringUtils.isEmpty(binary) || binary.length() % 8 != 0) return ""; StringBuilder hex = new StringBuilder(); int iTmp; for (int i = 0; i < binary.length(); i += 4) { iTmp = 0; for (int j = 0; j < 4; j++) { iTmp += Integer.parseInt(binary.substring(i + j, i + j + 1)) << (4 - j - 1); } hex.append(Integer.toHexString(iTmp)); } log.debug("二进制转十六进制:\n{}", hex); return hex.toString(); }
十六进制转二进制
/* * 十六进制转二进制 * @description: * @date: 2022/4/1 15:03 * @param: hex 十六进制字符串 * @return: java.lang.String 二进制字符串 */ @NotNull public static String fromHexString(String hex) { if (StringUtils.isEmpty(hex) || hex.length() % 2 != 0) return ""; StringBuilder binaryString = new StringBuilder(); String tmp; for (int i = 0; i < hex.length(); i++) { tmp = "0000" + Integer.toBinaryString(Integer.parseInt(hex.substring(i, i + 1), 16)); binaryString.append(tmp.substring(tmp.length() - 4)); } log.debug("十六进制转二进制:\n{}", binaryString); return binaryString.toString(); }
测试
toHexString(fromHexString("2Facdfacdfbebb543531"));
与君共勉:最实用的自律是攒钱,最养眼的自律是健身,最健康的自律是早睡,最改变气质的自律是看书,最好的自律是经济独立 。
您的一个点赞,一句留言,一次打赏,就是博主创作的动力源泉!
↓↓↓↓↓↓写的不错,对你有帮助?赏博主一口饭吧↓↓↓↓↓↓
本文来自博客园,作者:Marydon,转载请注明原文链接:https://www.cnblogs.com/Marydon20170307/p/16104941.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!