【面试题精讲】如何将二进制转为十六进制

有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步,认准https://blog.zysicyj.top

首发博客地址

文章更新计划

系列文章地址


java 复制代码
/**
 * 二进制转换为十六进制
 * 这里主要用于处理图片数据,因为数据库存储了图片的Base64编码
 */
private String bytesToHexString(byte[] bytes) {
    StringBuilder hexString = new StringBuilder();
    for (byte b : bytes) {
        String hex = Integer.toHexString(0xff & b);
        if (hex.length() == 1) {
            hexString.append('0');
        }
        hexString.append(hex);
    }
    return hexString.toString();
}

这个方法接受一个byte数组作为参数,表示二进制数据。它会将每个字节转换为对应的十六进制字符串,并将这些字符串拼接在一起,最后返回一个完整的十六进制字符串。

具体的实现步骤如下:

  1. 创建一个StringBuilder对象hexString,用于存储转换后的十六进制字符串。
  2. 使用for-each循环遍历bytes数组中的每个字节。
  3. 对于每个字节,使用Integer.toHexString()方法将其转换为对应的十六进制字符串。0xff & b是为了确保将字节转换为无符号整数。
  4. 如果转换后的十六进制字符串长度为1,说明只有一位,需要在前面补0。
  5. 将转换后的十六进制字符串追加到hexString中。
  6. 循环结束后,使用toString()方法将hexString转换为一个完整的十六进制字符串,并返回。

这个方法可以用于将任意二进制数据转换为十六进制字符串,不仅限于处理图片数据。你可以在其他需要将二进制数据转换为十六进制字符串的场景中使用这个方法。

本文由mdnice多平台发布

相关推荐
忆想不到的晖38 分钟前
Codex 探索:别急着调 Prompt,先把工作流收住
后端·agent·ai编程
weixin_408099671 小时前
【实战对比】在线 OCR 识别 vs OCR API 接口:从个人工具到系统集成该怎么选?
图像处理·人工智能·后端·ocr·api·图片文字识别·文字识别ocr
Victor3562 小时前
MongoDB(73)如何设置用户权限?
后端
Victor3562 小时前
MongoDB(74)什么是数据库级别和集合级别的访问控制?
后端
计算机学姐3 小时前
基于SpringBoot的咖啡店管理系统【个性化推荐+数据可视化统计+配送信息】
java·vue.js·spring boot·后端·mysql·信息可视化·tomcat
LSTM973 小时前
使用 Python 将图片转换为 PDF (含合并)
后端
小江的记录本3 小时前
【注解】常见 Java 注解系统性知识体系总结(附《全方位对比表》+ 思维导图)
java·前端·spring boot·后端·spring·mybatis·web
小飞Coding3 小时前
MyBatis Mapper 实现原理彻底解密——从动态代理到 JDBC 执行全链路剖析
后端·mybatis
Mr.45674 小时前
Spring Boot 集成 PostgreSQL 表级备份与恢复实战
java·spring boot·后端·postgresql
LucianaiB4 小时前
王炸组合!腾讯云 OpenClaw X 飞书 CLI,开启 Agent 基建狂潮!
后端