首页 > 其他分享 >HexUtil工具类

HexUtil工具类

时间:2023-06-13 13:04:24浏览次数:30  
标签:String stmp hex length new 工具 HexUtil byte

/** 
 * 进制转化 
 * @author  
 * 
 */  
public class HexUtil {  
  
    /** 
     * 二进制byte数组转十六进制byte数组 
     * byte array to hex 
     * 
     * @param b byte array 
     * @return hex string 
     */  
    public static String byte2hex(byte[] b) {  
        StringBuilder hs = new StringBuilder();  
        String stmp;  
        for (int i = 0; i < b.length; i++) {  
            stmp = Integer.toHexString(b[i] & 0xFF).toUpperCase();  
            if (stmp.length() == 1) {  
                hs.append("0").append(stmp);  
            } else {  
                hs.append(stmp);  
            }  
        }  
        return hs.toString();  
    }  
  
    /** 
     * 十六进制byte数组转二进制byte数组 
     * hex to byte array 
     * 
     * @param hex hex string 
     * @return byte array 
     */  
    public static byte[] hex2byte(String hex)  
             throws IllegalArgumentException{  
        if (hex.length() % 2 != 0) {  
            throw new IllegalArgumentException ("invalid hex string");  
        }  
        char[] arr = hex.toCharArray();  
        byte[] b = new byte[hex.length() / 2];  
        for (int i = 0, j = 0, l = hex.length(); i < l; i++, j++) {  
            String swap = "" + arr[i++] + arr[i];  
            int byteint = Integer.parseInt(swap, 16) & 0xFF;  
            b[j] = new Integer(byteint).byteValue();  
        }  
        return b;  
    }  
      
    public static void main(String[] args) {  
        String str1 = "abcedefghijklmnopqrstuvwxyz";  
        //String str1 = "1";  
        String hexStr = HexUtil.byte2hex(str1.getBytes());  
        System.out.println(hexStr);  
        String str2 = new String(HexUtil.hex2byte(hexStr));  
        System.out.println(str2);  
        System.out.println(str1.equals(str2));  
    }  
      
}

标签:String,stmp,hex,length,new,工具,HexUtil,byte
From: https://blog.51cto.com/chengzheng183/6468978

相关文章

  • 关于iotop-磁盘IO分析工具的非交互式的用法
    对于iotop命令,默认同top命令模式一样,是交互式模式,实时输出如果我们需要输出到日志文件中,进行分析,可能更多的情况是是需要使用非交互式模式刚好iotop命令,可以使用-b选项,进行非交互模式,然后每隔一秒输出一次所有进程-线程对磁盘IO的使用情况关于iotop命令的先项,本文以在RedHatE......
  • 全栈工程师必备技能与工具大全
    全栈工程师是在前端和后端Web开发方面具有专业知识的专业人士。他们对各种编程语言、框架和工具有深入的了解。从无到有创建Web应用程序,包括设计、开发、测试和维护。据Glassdoor的调研数据显示,在美国,全栈工程师的平均年薪为114,000美金,作为能够负责Web应用程序的前端和后端的......
  • 高颜值图片处理工具,集多种实用功能于一身
       地址:http://in-git.gitee.io/in-nav/#/ 功能点: 1.集成多款高质量图片滤镜,让您的图片瞬间提升颜值,更加精美。 2.支持多种格式转换,包括图片转换为base64、png、webp等格式,方便您在不同的场合使用。 3.图片压缩功能,快速缩小图片文件大小,方便存储和传输。 ......
  • 瓴羊Quick BI:商业智能工具的新标杆
    瓴羊QuickBI在多设备、多终端可视化能力、办公协同能力和中国式报表搭建能力等方面有着独特的优势和亮点。这些功能能够满足不同用户的需求,提高工作效率和数据分析效果。同时,瓴羊QuickBI还具有易用性高、数据安全可靠等优点,是一款值得推荐的商业智能工具。瓴羊QuickBI与钉钉联合......
  • 关于iotop-磁盘IO分析工具的安装与简单的使用
    iotop是一个类似top的工具,用来显示实时的磁盘活动。iotop监控Linux内核输出的I/O使用信息,并且显示一个系统中进程或线程的当前I/O使用情况。它显示每个进程/线程读写I/O带宽。它同样显示当等待换入和等待I/O的线程/进程花费的时间的百分比。TotalDISKREAD和T......
  • JAVA非递归生成无限级菜单树的较简代码实现。(非泛用型工具包,仅总结逻辑)
    这是一个根据列表生成一个树状结构的较简单实现。搜了搜看起来好像没多少人总结过这种实现。写上来整理一下自己的思路,请大家用用看看,应该用起来问题不大?反正我没遇到BUG。实现的时间复杂度为O(N),空间复杂度应该还是O(N)吧。不过GPT说O(1)可能是因为java的对象实现hash链表是引用而不是......
  • 枚举的方法、枚举案例 - 状态机、组织枚举、策略枚举、枚举工具类 - EnumSet 和 EnumM
    引入编写季节类(Season),该类只有四个对象(spring,summer,autumn,winter)概念枚举(enum)全称为enumeration,是JDK1.5中引入的新特性。语法publicenumColor{//默认添加publicstaticfinalRED,GREEN,BLUE;}本质尽管枚举看起来像是一种新的数据类型,实际上,枚举就是一种受限制......
  • github PageHelper 分页工具类
    分页工具类importcn.hutool.core.lang.Assert;importcom.github.pagehelper.PageInfo;importcom.google.common.collect.Lists;importorg.springframework.util.CollectionUtils;importjava.util.Collections;importjava.util.Iterator;importjava.util.List;imp......
  • 高效企业必备的敏捷工具
    高效企业必备的敏捷工具Leangoo领歌Leangoo领歌是一款专业的敏捷开发管理工具,提供端到端敏捷研发管理解决方案,涵盖敏捷需求管理、任务协同、进展跟踪、统计度量等。领歌上手快、实施成本低,可帮助企业快速落地敏捷,提质增效、缩短周期、加速创新,在数字时代赢得竞争。更易用的S......
  • 请问港澳台一般用什么聊天工具?
    常用聊天软件有:1.MSN2.Skype(视频聊天)网站有:1.Facebook(人人网抄他的)2.Twitter(新浪微博抄他的)视频网站有:youtube(优酷抄他的)以上这些都是全球通用和比较热门的。如果还要更具体的。可以进入本地论坛,不过香港人说广东话,用粤语打字,日本人说日语,韩国人说韩语,估计用google翻译是翻译......