flutter - 将任意长的十六进制字符串转换为 Dart 中的数字?

标签 flutter dart hex

我需要将 8 个字符的十六进制子字符串转换为整数列表。

例如,我可能有字符串

001479B70054DB6E001475B3

由以下子串组成

001479B7    // 1341879 decimal
0054DB6E    // 5561198 decimal
001475B3    // 1340851 decimal

我目前正在使用 convert.hex 首先将字符串转换为 4 个整数的列表(因为 convert.hex 仅处理解析 2 个字符的十六进制字符串)然后将它们相加/相乘:

String tmp;
for(int i=0; i<=myHexString.length-8; i+=8){
  tmp = myHexString.substring(i, i+8);
  List<int> ints = hex.decode(tmp);
  int dec = ints[3]+(ints[2]*256+(ints[1]*65536)+(ints[0]*16777216));
}

有没有更有效的方法来做到这一点?

最佳答案

你可以使用 int.parse('001479B7', radix: 16);

https://api.dartlang.org/stable/2.4.1/dart-core/int/parse.html

因此您的代码将如下所示:

void main() {
  final fullString = '001479B70054DB6E001475B3';

  for (int i = 0; i <= fullString.length - 8; i += 8) {
    final hex = fullString.substring(i, i + 8);

    final number = int.parse(hex, radix: 16);
    print(number);
  }
}

关于flutter - 将任意长的十六进制字符串转换为 Dart 中的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57675661/

相关文章:

使用枚举常量时出现 C 错误

android-studio - 将考虑丢失的 Gc 直方图窗口的数量从 101 减少到 100

list - 如何处理 ListTile flutter 中的右溢出

flutter - FLUTTER隐藏式叠加菜单

google-maps - 重定向到Google Maps App,并在源和目标之间进行导航,并在 flutter 朔迷离中停下来

c++ - 在 C++ 中将输出从十六进制转换为十进制

C# 中的十六进制变量

android - 为每个实例执行 initstate

flutter - 为什么我不能导入我刚刚安装的包?

dart - 如何制作可重用的AlertDialog?