美文网首页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