алгоритм перевода в десятичную систему счисления



Автор Парикмахер сервис задал вопрос в разделе Другие языки и технологии

Алгоритмы перевода чисел из одной системы счисления в другую, арифметика в различных системах счисления и получил лучший ответ

Ответ от Алекс Куха[гуру]
Никак не въеду, зачем людей мучают темой перевода. Не могу себе представить, где на практике может понадобиться умение делать перевод из 3х разрядной в 17и разрядную (и тем более арифметику). В жизни их всего 3, причём 8иричная становится анахронизмом, 16иричная лишь короткая запись бинарной и используется для сокращения в иллюстративном контексте. Неужели других тем преподы не могут придумать. Мало того, что алгоритмов великое множество, так и сам смысл в разборке чужого представляется сомнительным. Надо вперёд двигаться, а не тормозить на уже сделанном. Зачем изучать то, что даже в компе не используется, где смысл?
Источник: ru.wikipedia.org/wiki/Список_алгоритмов
Sasha Programmer
Мыслитель
(5429)
А что по-вашему нужно заочникам?

Ответ от Sasha Programmer[гуру]
Вот видео на эту тему:
А вот статьи:
===
Алгоритмы перевода чисел из одной системы в другую.
В программировании используются три системы счисления: двоичная, десятичная и шестнадцатеричная.
Поэтому, должно быть пять алгоритмов перехода:
1. Из двоичной в десятичную;
2. Из двоичной в шестнадцатеричную;
3. Из десятичной в двоичную;
4. Из десятеричной в шестнадцатеричную;
5. Из шестнадцатеричной в двоичную;
6. Из шестнадцатеричной в десятичную.
Теперь, сами алгоритмы:
1. Допустим есть число в двоичной системе исчисления:
1010. Его нужно перевести в десятичную.
Нужно умножить поразрядно каждую цифру на основание в степени разряда. Какое основание в двоичной системе? Ответ: два. Основание определили. Теперь, как
это умножить на степень разряда? Разряды в числе считаются справа налево. Т. е. в числе 1010 это 0-первый разряд, 1-второй, 0-третий, 1-четвёртый. Как это
выглядит? 0*2^0 + 1*2^1 + 0*2^2 + 1*2^3 = 0 + 2 + 0 + 8 = 10. Т. е. 1010 в двоичной системе = 10 в десятеричной.
2. Перевести из двоичной в шестнадцатеричную.
1110. Число уже другое. Не 1010.
Точно так же.
0*2^0 + 1*2^1 + 1*2^2 + 1*2^2 = 0 + 2 + 4 + 8 = E
3. Нужно перевести из десятичной системы в двоичную.
Есть число 15. Нужно перевести в двоичную систему. Алгоритм такой:
Делим 15 и (12) на два и остаток записываем.
15 / 2 = 7 (и остаток 1)12 / 2 = 6 (и остаток 0)
7 / 2 = 3 (и остаток 1)6 / 2 = 3 (и остаток 0)
3 / 2 = 1 (и остаток 1)3 / 2 = 1 (и остаток 1)
1 / 2 = 0 (и остаток 1)1 / 2 = 0 (и остаток 1)
Записываем остатки 1111Записываем остатки 1100
Остатки записываются снизу вверх.
4. Теперь нужно перевести из десятичной системы в шестнадцатеричную.
Есть число 68 и 157 в десятичной системе.
68 / 16 = 4 (и остаток 4)157 / 16 = 9 (и остаток 13 или D (D=13))
4 / 16 = 0 (и остаток 4)9 / 16 = 0 (и остаток 9)
Записываем остатки 44.Записываем 9D
5. Теперь осталась только шестнадцатеричная система счисления.
Как из неё переводить числа? Допустим 157 и 8FD нужно перевести в двоичную систему. Это самый простой алгоритм из перечисленных. Для перевода нужно
каждую цифру заменяем её эквивалентом в двоичной системе. Как расчитать эквивалент? Нужно помнить, что на каждую цифру из шестнадцатеричной системы
приходится четыре цифры в двоичной. Например, 7 это 0111 или F (т. е. 15) это 1111 или D (т. е. 13) это 1101
Т. е. цифры 1, 5 и 7 это 0001, 0101 и 0111. А вместе это 157 и 000101010111
Или 8, F и D это 1000, 1111 и 1101 А вместе это 8FD и 100011111101
6. Последний алгоритм это из шестнадцатеричной ситстемы перевести в десятичную.
Например 157 и 8FD Нужно перевести в 10-тичную.
Нужно перевести цифры в десятичную систему, потому умножить их на основание шестнадцатеричной системы (*16) в степени разряда цифры. Например, число 157
7*16^0 + 5*16^1 + 1*16^2 = 7*1 + 5*16 + 1*256 = 343
Или число 8FD нужно перевести в десятичную систему, тогда
D(13)*16^0 + F(15)*16^1 + 8(8)*16^2 = 13*1 + 15*16 + 8*256 = 2301

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: Алгоритмы перевода чисел из одной системы счисления в другую, арифметика в различных системах счисления
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*