美文网首页Flutter
【Dart/Flutter】Uint8List转Hex字符串,详

【Dart/Flutter】Uint8List转Hex字符串,详

作者: 坐了整个春夏秋冬 | 来源:发表于2021-11-15 15:38 被阅读0次
    import 'dart:typed_data';
    
    class HexUtils {
      static String uint8ToHex(Uint8List byteArr) {
        if (byteArr == null || byteArr.length == 0) {
          return "";
        }
        Uint8List result = Uint8List(byteArr.length << 1);
        var hexTable = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F']; //16进制字符表
        for (var i = 0; i < byteArr.length; i++) {
          var bit = byteArr[i]; //取传入的byteArr的每一位
          var index = bit >> 4 & 15; //右移4位,取剩下四位
          var i2 = i << 1; //byteArr的每一位对应结果的两位,所以对于结果的操作位数要乘2
          result[i2] = hexTable[index].codeUnitAt(0); //左边的值取字符表,转为Unicode放进resut数组
          index = bit & 15; //取右边四位
          result[i2 + 1] = hexTable[index].codeUnitAt(0); //右边的值取字符表,转为Unicode放进resut数组
        }
        return String.fromCharCodes(result); //Unicode转回为对应字符,生成字符串返回
      }
    }
    
    

    关键字:Uint8List,转16进制,Hex字符串

    相关文章

      网友评论

        本文标题:【Dart/Flutter】Uint8List转Hex字符串,详

        本文链接:https://www.haomeiwen.com/subject/pmjqtrtx.html