Как конвертировать числа в разные системы счисления
Рекомендую калькулятор систем счисления на Андроид (ссылка на Google Play)
Многие спрашивают - как в Паскале менять систему счисления? Придётся вас огорчить - никак. Паскаль работает только с десятичной системой счисления. Однако конвертирование чисел в нём возможно, например как в программе ниже:
Программа для конвертирования чисел на Паскале |
1
Рассмотрим перевод из любой системы счисления (с любым целым числом в основании) в десятичную. Для этого искомое число, например, 123 нужно записать по формуле записи числа, принятой в исходной системе счисления. Возьмем для примера восьмеричную систему. Исходя из названия, основанием является цифра 8, это значит, что каждый разряд числа является степенью основания по убыванию, в данном случае это вторая, первая и нулевая степень (8 в нулевой степени = 1). Число 123 записывается следующим образом: 1*8*8+2*8+3*1. Перемножьте цифры и получите 64 +16 +3, в итоге - 83. Это число и будет представлением искомого числа в десятичной системе счисления.
2
Для шестнадцатеричной системы расчет сложнее. В ней кроме цифр в представлении участвуют буквы латинского алфавита, то есть полный разряд составляет цифры от 0 до 9 и буквы от A до F. Например, число 6B6 по формуле записи числа будет выглядеть так: 6*16*16+11*16+6*1, где В=11. Перемножьте цифры и получите 1536+176+6, в итоге - 1718. Это - то же число в десятичной системе счисления.
3
Перевод из десятичной системы в двоичную, восьмеричную и шестнадцатеричную производится путем последовательного деления на основание (2, 8 и 16) до тех пор, пока не останется число меньше делителя. Остатки выписываются в обратном порядке. Например, переведем число 40 в двоичную систему, для этого: разделите 40 на 2, пишите 0, 20 на 2, пишите 0, 10 на 2, пишите 0, 5 на 2, пишите 1, 2 на 2, пишите 0 и 1. Получаем итоговое число в двоичной системе - 101000.
Например:
Переведем число 123 из десятичной системы в восьмеричную, остатки также пишутся в обратном порядке. Делите 123 на 8, получается 15 и 3 в остатке, пишите 3. Делите 15 на 8, получается 1 и 7 в остатке, пишите 7. В старшем разряде пишите оставшуюся 1. Итоговое число - 173.
или
Переведем число 123 из десятичной системы в шестнадцатеричную. Делите 123 на 16, получается 7, 11 в остатке. Итак, цифра старшего разряда - 7, цифра 11 меньше основания и обозначается буквой B. Получаем итоговое число - 7B.
4
Небольшой лайфхак:
Для перевода между 2, 8 и 16-ричных систем пользуйтесь этой табличкой. Например: перевести 1828 из 16 в 8-ричную систему. Сначала переведём 1828 в двоичную. 1 - это 0001. 8- 1000, 2 - 0010. Таким образом получается 0001100000101000. Нули спереди можно убрать. Теперь переводим в 8-ричную. Делим число по три цифры: 1.100.000.101.000. Спереди дописываем недостающие нули для удобства 001.100.000.101.000 и подставляем значения из третьего столбца таблицы. 001 - это 1, 100 - это 4, 000 - это 0, 101 - это 5. Получается 14050.
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c | d | e | f | |
| 2←16 | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
| 2←8 | 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 |
Источник: http://www.kakprosto.ru/kak-78795-kak-perevesti-chisla-iz-odnoy-sistemy-ischisleniya-v-druguyu