【问题标题】:write byte array in dart在飞镖中写入字节数组
【发布时间】:2021-08-10 08:34:08
【问题描述】:

这些是我需要将它们放入 16 个字节数组中的一些元素

[3A, 60, 43, 2A, 5C, 01, 21, IF, 29, 1E, 0F, 4E, 0C, 13, 28, 25]

但是我使用 Uint8List 来创建字节数组,但是当我添加它们时它给出了错误

  List<Uint8List> key =[3A, 60, 43, 2A, 5C, 01, 21, IF, 29, 1E, 0F, 4E, 0C, 13, 28, 25];

The element type 'int' can't be assigned to the list type 'Uint8List'. (Documentation)
Expected to find ','.
Undefined name 'A'. (Documentation)  Try correcting the name to one that is defined, or defining the name. 

如何使用这些元素创建字节数组?

【问题讨论】:

  • 你期望字节表示是什么? 3A 看起来像单个字节的十六进制值,但 PW6G8HUJ 显然不是十六进制值。 UJ 应该如何编码成一个字节?
  • 我需要十六进制
  • 你有一堆不是有效的十六进制数字的值,所以你需要澄清你希望用它们做什么。
  • 请将它们全部视为十六进制
  • 十六进制整数文字以0x 为前缀,因此您可以:Uint8List key = Uint8List.fromList([0x3A, 0x60, 0x43, 0x2A, 0x5C, 0x01, 0x21, ...])。但是,它会在 IF 处失败,这又不是一个有效的十六进制数。

标签: flutter dart


【解决方案1】:

如果它们是十六进制格式,您可以以字符串表示形式开始它们

final strings = ['3A', '60', '43', '2A']; // List<String>

如果您希望将这些值转换为整数表示,您可以这样做:

final integers = strings.map((s) => int.parse(s, radix: 16)).toList(); //List<Int>

【讨论】:

    猜你喜欢
    • 2019-06-16
    • 2017-02-18
    • 1970-01-01
    • 2020-05-19
    • 2019-06-29
    • 1970-01-01
    • 1970-01-01
    • 2020-05-17
    • 1970-01-01
    相关资源
    最近更新 更多