|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
28.05.2020, 00:49 | #1 |
Регистрация: 16.12.2014
Сообщений: 4
|
Преобразовать число из двадцатеричной системы счисления к двоичной системе
Дана строка, содержащая число в двадцатеричной системе исчисления. Преобразовать число в строке к двоичной системе.
Код ниже переводит десятичное число в двоичную систему счисления. Помогите пожалуйста переделать, чтоб двадцатеричное число преобразовать в двоичное. Код:
|
28.05.2020, 09:07 | #2 |
фрилансер
Участник клуба
Регистрация: 11.10.2019
Сообщений: 1,010
|
сканируешь 20-ричное начиная с младшего разряда (mass[0]). Младший разряд умножается на десятичную 20
более старший разряд (mass[1]) умножается на 20*20 ещё более старший разряд (mass[2]) умножается на 20*20*20 и так далее все произведения суммируешь - это будет результат. Результат уже двоичный, поскольку данные в компе не умеют иначе храниться. Далее отобрази в нужном формате |
28.05.2020, 09:12 | #3 |
фрилансер
Участник клуба
Регистрация: 11.10.2019
Сообщений: 1,010
|
можно оптимизировать процесс сканирования - начать со старшего значащего разряда.
Его кладём в сумму. Затем, если есть более младший разряд, сумму умножаем на 20 и складываем с текущим разрядом. И так далее |
28.05.2020, 10:13 | #4 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,620
|
Вот интересно - 20-ричная, как там обозначаются цифры после 15? В hex - там A...F. А тут дальше по алфавиту G,H ? Впрочем, она - не нормированная стандартами, как захотим, так и сделаем ?
Так вот, для начала надо эту 20-ю цифру в число преобразовать. |
28.05.2020, 10:21 | #5 |
фрилансер
Участник клуба
Регистрация: 11.10.2019
Сообщений: 1,010
|
digitalis,
int mass[21]; тип int - никак не отображается разряд, как есть так и есть. Преобразовывать не надо 0,1,2,..... 10,11,12.....18,19 |
28.05.2020, 10:37 | #6 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,620
|
Интересно девки пляшут... В 16-ричном тоже ничего преобразовывать не надо? И 255 (дес.) - никаких там FF, а просто и ясно: 1515 ?
Я всегда считал, что в N-ричной системе счисления должен существовать набор цифр 0...N-1 Если так, как предлагаете, то надо условиться и это ясно определить, что каждый разряд 20-ричного числа обозначается парой цифр 00 ... 19 или разделять их запятыми, но это уже будет не система счисления, а галиматня . IMHO, разумеется. Кстати, открою маленькую тайну: число, выведенное на экран (на бумагу) никаким другим образом не может отображаться, кроме как символьной строкой - символы, являющиеся цифрами данного набора. Последний раз редактировалось digitalis; 28.05.2020 в 10:41. |
28.05.2020, 10:43 | #7 |
фрилансер
Участник клуба
Регистрация: 11.10.2019
Сообщений: 1,010
|
digitalis, однолитерные обозначения A,B,C,D,E,F - это лишь удобное отображение для человека. Для компьютера это десятичные 10,11,12,13,14,15 или двоичные 1010,1011,1100,1101,1110,1111
в массиве uint8_t можно представлять 256-ричные числа в массиве int32_t - 2147483648 - ричные в массиве uint32_t - 4294967296- ричные каждый элемент массива - один разряд как есть, ничего преобразовывать не надо |
28.05.2020, 10:48 | #8 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,620
|
https://ru.wikipedia.org/wiki/Система_счисления
Читать, читать до полного понимания разницы между числом и цифрой. Для упражнения: запишите в 20-ричной системе число дней в году и предложите ТСу перевести его в десятичную. На этом я выхожу из темы, мне за ликбез не платят. |
28.05.2020, 10:48 | #9 |
фрилансер
Участник клуба
Регистрация: 11.10.2019
Сообщений: 1,010
|
например (разряды разделены палками)
9|19|10|13|0 - 20-ричное число 15|7|14||0|13 - 16 ричное (или, как человеку более привычно F7E0D ) |
28.05.2020, 10:48 | #10 |
фрилансер
Участник клуба
Регистрация: 11.10.2019
Сообщений: 1,010
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Длинная арифметика и системы счисления (программа перевода из двоичной (вводимое число до 100 знаков) в другую СС (4-19) [C++] | Virts | Помощь студентам | 0 | 10.10.2014 19:07 |
Преобразовать заданное целое число из p - ичной системы счисления в q - ичную | Wedmochka | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 30.05.2012 14:00 |
Ввести число типа unsigned long. Распечатать в десятичной, двоичной и шестнадцатеричной системе счисления | gas777 | Общие вопросы C/C++ | 5 | 03.06.2011 09:19 |
Дано число в двоичной системе счисления. Проверить правильность ввода этого числа | isus | Помощь студентам | 2 | 29.11.2009 23:32 |