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

有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步,认准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多平台发布

相关推荐
滴滴答答哒6 分钟前
ASP.NET Core + FaceRecognitionDotNet 人脸识别实战:DI 单例、特征向量持久化与 1:N 比对
后端·asp.net
captain3763 小时前
MyBatis操作数据库(入门2)
java·数据库·spring boot·后端·spring·mybatis
IT_陈寒4 小时前
Java序列化踩坑记:对象循环引用让我加班两小时
前端·人工智能·后端
泡海椒4 小时前
05-雷达图多维画像-信用评级多维画像
后端
王中阳Go4 小时前
5.27 分钟干完后端和全部测试:一场三小时笔试的五个失分点,四个不在代码上
大数据·数据库·人工智能·后端·大语言模型
大哥43094 小时前
Modbus 的"字序":一个配错就变成天文数字,或者干脆变成 0
后端
岩钧4 小时前
New API 源码解析:一个生产级 AI 网关的架构与实现
后端
学到老活到老4 小时前
第 24 集:配置文件写了 80,Spring Boot 为什么读到 90?
java·后端·spring
用户360055579004 小时前
Kestrel_VLLM - 25 · 全注意力层设备化、整层对拍与访存粒度
后端
yliucherish4 小时前
从零实现一个 SQL 注入检测引擎:报错注入与布尔盲注的误报控制
后端