Конвертер систем счисления

  1. private static String intToRadix(int value, int radix) {
  2.     final StringBuilder sb = new StringBuilder();
  3.     while (value > 0) {
  4.         int v = value % radix;
  5.         if (v >= 10) v = v - 10 + 'A';
  6.         else v = v + '0';
  7.         sb.append((char)v);
  8.         value = value / radix;
  9.     }
  10.     return sb.reverse().toString();
  11. }
  12.  
  13. private static int radixToInt(String value, int initialRadix) {
  14.     int out = 0;
  15.     final int len = value.length();
  16.     int pow = 1;
  17.     for (int i = 0; i < len; i++) {
  18.         char ch = value.charAt(len - i - 1);
  19.         int code;
  20.         if (ch >= 'A') code = ch + 10 - 'A';
  21.         else code = ch - '0';
  22.         out += code * pow;
  23.         pow *= initialRadix;
  24.     }
  25.     return out;
  26. }
Пример вывода:
3054072 in 36 -> 1TGJC in 10 -> 3054072
9896109 in 64 -> \g2d in 10 -> 9896109
16777215 in 512 -> vȶȶ in 10 -> 16777215
16777215 in 1024 -> Fжж in 10 -> 16777215
5465987 in 32768 -> Ý枺 in 10 -> 5465987
1396211 in 64000 -> L찪 in 10 -> 1396211

Реклама

Мы в соцсетях

tw tg yt gt