powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Конвертер системы счисления
4 сообщений из 4, страница 1 из 1
Конвертер системы счисления
    #40086894
RumaNO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно сделать конвертер системы счисления. У пользователя спрашивается число, в какой оно система счисления, и в какую перевести? Конвертация должна быть с помощью класса обертки Long. Если пользователь вводит q или Q программа завершает работу.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
public static void main(String[] args)
{
    Scanner sc = new Scanner(System.in);

    char letter; // q and Q
    int number; // вводимое число
    int ns; //номер системы счисления
    int nsnumb; //номер системы в которой число

    do
    {
        System.out.println("Введите число: ");
        number = sc.nextInt();
        System.out.println("В какой системе счисления число?");
        nsnumb = sc.nextInt();
        System.out.println("Введите систему счисления: ");
        ns = sc.nextInt();

        switch (ns)
        {
            case 2:
                String convert = Long.toBinaryString(number);
                System.out.println("Двоичная система: " + convert);
                break;
            case 8:
                convert = Long.toOctalString(number);
                System.out.println("Воьмиричная система: "+ convert);
                break;
            case 16:
                convert = Long.toHexString(number).toUpperCase();
                System.out.println("Шестнадцатеричная система: " + convert);
        }
        letter = sc.next().charAt(0);

    }while(letter != 'q' && letter != 'Q');
} 



Подскажите как модифицировать код чтоб конвертация происходила в любых направлениях?
...
Рейтинг: 0 / 0
Конвертер системы счисления
    #40086896
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Integer.parseInt покрывает часть этого технического задания. От двоичной до 36-ричной.

https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html#parseInt-java.lang.String-int-

Но я-бы обратил внимание на то что input и output должны иметь символьное а не числовое представление.

P.S. Кроме того есть системы счисления такие как Римская (непозиционная), Унарная (только едички как символы)
и тоже непозционная и прочие которые тоже могут быть интересны для конверсии base64, base85, Вавилонская.
...
Рейтинг: 0 / 0
Конвертер системы счисления
    #40086897
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Учитесь пользоваться документацией. API класса Long не настолько обширно, чтобы там нельзя было найти требуемое в районе toString().

P.S.
Ну и по логике напрашивается цикл с предусловием.
...
Рейтинг: 0 / 0
Конвертер системы счисления
    #40087642
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Решение для перевода 10-ой в 16-ти ричную системы.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
class Solution {
    public String toHex(int num) {
        if (num == 0) {
            return "0";
        }
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < 8; i++) {
            switch (num & 15) {
                case 0:  sb.insert(0, "0");
                     break;
                case 1:  sb.insert(0, "1");
                     break;
                case 2:  sb.insert(0, "2");
                     break;
                case 3:  sb.insert(0, "3");
                     break;
                case 4:  sb.insert(0, "4");
                     break;
                case 5:  sb.insert(0, "5");
                     break;
                case 6:  sb.insert(0, "6");
                     break;
                case 7:  sb.insert(0, "7");
                     break;
                case 8:  sb.insert(0, "8");
                     break;
                case 9:  sb.insert(0, "9");
                     break;
                case 10:  sb.insert(0, "a");
                     break;
                case 11:  sb.insert(0, "b");
                     break;
                case 12:  sb.insert(0, "c");
                     break;
                case 13:  sb.insert(0, "d");
                     break;
                case 14:  sb.insert(0, "e");
                     break;
                case 15:  sb.insert(0, "f");
                     break;
            }
            num = num >> 4;
            if (num == 0) {
                break;
            }
        }
        return sb.toString();
        
    }
}



Хорошего вам дня!
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Конвертер системы счисления
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]