我一直在寻找一种将Dart编程语言中的十进制数字转换为十六进制格式的函数/方法。
例如,HexCodec类中的hex.encode方法无法转换十进制1111(十六进制值为457),而是给出异常“ FormatException:无效字节0x457。(偏移量为0)”。
如果有人可以帮助我,那就太好了
谢谢
答案 0 :(得分:6)
int.toRadixString(16)
做到了。
另请参阅https://groups.google.com/a/dartlang.org/forum/m/#!topic/misc/ljkYEzveYWk
答案 1 :(得分:2)
这是一个更完整的例子:
final myInteger = 2020;
final hexString = myInteger.toRadixString(16); // 7e4
基数仅表示基数,因此 16
表示基数为 16。您可以使用相同的方法制作二进制字符串:
final binaryString = myInteger.toRadixString(2); // 11111100100
如果您希望十六进制字符串始终为四个字符长,那么您可以用零填充左侧:
final paddedString = hexString.padLeft(4, '0'); // 07e4
如果你更喜欢大写十六进制:
final uppercaseString = paddedString.toUpperCase(); // 07E4
这里有一些其他有趣的事情:
print(0x7e4); // 2020
int myInt = int.parse('07e4', radix: 16);
print(myInt); // 2020