/
Mozokhin
/
Calculator
Обзор
Документация
Войти
/
Mozokhin
/
Calculator
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Converter.java
78 строк
3 KB
vladimir
Пу-пу-пу, куча ошибок, исправлю утром, если меня хватит...
29 май 2024, 02:13
29 май 2024, 02:13
2173c64
Код
Авторство
О чём код?
public abstract class Converter { private int temp; public Converter(){} public void set(int val){ this.temp = val; } public int get(){ return this.temp; } public abstract int getSystem(); public int validate(String mask, String num){ if (!num.matches(mask)){ throw new RuntimeException("Число не в текущей системе счисления"); } return Integer.parseInt(num, getSystem()); } public String toString(){ return getSystem() + " " + getCurrent(); } private String getCurrent() { switch (getSystem()) { case 2: return " " + Integer.toBinaryString(get()); case 8: return " " + Integer.toOctalString(get()); case 10: return String.valueOf(get()); case 16: return Integer.toHexString(get()).toUpperCase(); } throw new RuntimeException("Число не в текущей системе счисления"); } public String print(){ switch (getSystem()){ case 2:{ return 8 + " " + Integer.toOctalString(get()) + "\n" + 10 + " " + get() + "\n" + 16 + " " + Integer.toHexString(get()).toUpperCase(); } case 8:{ return 2 + " " + Integer.toBinaryString(get()) + "\n" + 10 + " " + get() + "\n" + 16 + " " + Integer.toHexString(get()).toUpperCase(); } case 10:{ return 2 + " " + Integer.toBinaryString(get()) + "\n" + 8 + " " + Integer.toOctalString(get()) + "\n" + 16 + " " + Integer.toHexString(get()).toUpperCase(); } case 16:{ return 2 + " " + Integer.toBinaryString(get()) + "\n" + 8 + " " + Integer.toOctalString(get()) + "\n" + 10 + " " + get(); } } throw new RuntimeException("Число не в текущей системе счисления"); } public static double Check(String regex, String input) { if (input.matches(regex)) { // Определение системы счисления по префиксу int radix = 10; if (input.startsWith("0x") || input.startsWith("0X")) { radix = 16; // Шестнадцатеричная система счисления } else if (input.startsWith("0b") || input.startsWith("0B")) { radix = 2; // Двоичная система счисления } else if (input.startsWith("0")) { radix = 8; // Восьмеричная система счисления } // Преобразование строки в десятичное число return Double.parseDouble(input, radix); } } }