toHex method

String toHex()

Implementation

String toHex() {
  if (length == 0) {
    return "";
  }
  Uint8List result = Uint8List(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 < length; i++) {
    var bit = this[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转回为对应字符,生成字符串返回
}