zoukankan      html  css  js  c++  java
  • byte数组转换成16进制字符串和字符数组的方法

    在与硬件设备通信的时候,硬件传回来的数据经常是十六进制的,在0-100的范围内java会自动转换成十进制的数字出来,但如果包含abc这些字符自动转换就有问题了,可能变成负数了。下面提供两个方法转换成十六进制的 可以输出和设备传的时候一样的内容(可能字母大小写变了,在设备里大写的输出是小写的)。


     2 
     3 public class CommonUtil {
     4     /** 
     5      * byte数组转换成16进制字符串 
     6      * @param src 
     7      * @return 
     8      */  
     9     public static String bytesToHexString(byte[] src){       
    10            StringBuilder stringBuilder = new StringBuilder();       
    11            if (src == null || src.length <= 0) {       
    12                return null;       
    13            }       
    14            for (int i = 0; i < src.length; i++) {       
    15                int v = src[i] & 0xFF;       
    16                String hv = Integer.toHexString(v);       
    17                if (hv.length() < 2) {       
    18                    stringBuilder.append(0);       
    19                }       
    20                stringBuilder.append(hv);       
    21            }       
    22            return stringBuilder.toString();       
    23        }
    24     
    25     /** 
    26      * byte数组转换成16进制字符数组
    27      * @param src 
    28      * @return 
    29      */  
    30     public static String[] bytesToHexStrings(byte[] src){       
    31            if (src == null || src.length <= 0) {       
    32                return null;       
    33            }
    34            String[] str = new String[src.length];
    35            
    36            for (int i = 0; i < src.length; i++) {       
    37                int v = src[i] & 0xFF;       
    38                String hv = Integer.toHexString(v);       
    39                if (hv.length() < 2) {       
    40                    str[i] = "0";       
    41                }       
    42                str[i] = hv;        
    43            }       
    44            return str;       
    45        }
    46 
    47 }
    大自然,飘然的风,QQ群: python技术交流群:453879716,人工智能深度学习群:251088643
    golang技术交流群:316397059,vuejs技术交流群:458915921 渗透技术:534096581,囤币一族:621258209,有兴趣的可以加入
    微信公众号:大自然预测(ssqyuce)原双色球预测, 心禅道(xinchandao)
  • 相关阅读:
    JS trim的实现
    采用 LinQ 替代 SortedDictionary
    Int Cint Fix 函数的区别
    iptables详解(13):iptables动作总结之二
    iptables详解(12):iptables动作总结之一
    iptables详解(11):iptables之网络防火墙
    iptables详解(10):iptables自定义链
    iptables详解(9):iptables的黑白名单机制
    iptables详解(8):iptables扩展模块之state扩展
    iptables详解(7):iptables扩展之udp扩展与icmp扩展
  • 原文地址:https://www.cnblogs.com/zdz8207/p/bytesToHexString.html
Copyright © 2011-2022 走看看