Flutter 好东西

Flutter 中 16进制与10进制之间相互转换

2019-11-10  本文已影响0人  Buddha_like
void test (){
    int s = 616626;//十进制

    String a = s.toRadixString(16);

    print('十进制转16进制---$a');

    int m = _hexToInt(a);//16进制转10进制

    print('十六进制转10进制---$m');

  }


  int _hexToInt(String hex) {
    int val = 0;
    int len = hex.length;
    for (int i = 0; i < len; i++) {
      int hexDigit = hex.codeUnitAt(i);
      if (hexDigit >= 48 && hexDigit <= 57) {
        val += (hexDigit - 48) * (1 << (4 * (len - 1 - i)));
      } else if (hexDigit >= 65 && hexDigit <= 70) {
        // A..F
        val += (hexDigit - 55) * (1 << (4 * (len - 1 - i)));
      } else if (hexDigit >= 97 && hexDigit <= 102) {
        // a..f
        val += (hexDigit - 87) * (1 << (4 * (len - 1 - i)));
      } else {
        throw new FormatException("Invalid hexadecimal value");
      }
    }
    return val;
  }
上一篇下一篇

猜你喜欢

热点阅读