【问题标题】:Dart: convert decimal to hexDart:将十进制转换为十六进制
【发布时间】:2018-09-16 16:38:32
【问题描述】:

我一直在寻找一种在 Dart 编程语言中将十进制数转换为十六进制格式的方法。

例如,HexCodec 类中的hex.encode 方法无法转换十进制的 1111(其十六进制值为 457),而是给出了异常:

FormatException:无效字节 0x457。 (偏移量 0)

如何将十进制数转换为十六进制?

【问题讨论】:

    标签: dart


    【解决方案1】:

    【讨论】:

    • 如果你想要一个固定宽度的十六进制字符串,你也可以使用int.toRadixString(16).padLeft(4, '0')来保证(至少)四位数。
    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-28
      • 1970-01-01
      • 2018-09-04
      • 2017-07-31
      • 2015-11-11
      • 2013-07-20
      相关资源
      最近更新 更多