2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Системы счисления. Перевод чисел
Сообщение18.12.2013, 15:40 
Здравствуйте.

Когда то давно в школе меня научили переводить из одной системы счисления в другую. Алгоритм я помню, но почему делается именно так я так и не разобрался. Сейчас пытаюсь понять саму суть метода.

Объяснение метода я нашел только в учебнике Киселева А.П. "Арифметика":
Цитата:
Число, написанное по десятичной системе счисления, изобразить по другой системе.

Для примера положим, что требуется число 1766 выразить по пятеричной системе при помощи пяти знаков: 0, 1, 2, 3, 4. Для этого узнаем сначала, сколько в 1766 заключается единиц 2-го разряда, т.е. пятерок. Их оказывается 353, причем остается 1 единица 1-го разряда. Теперь узнаем, сколько в 353 пятерках заключается единиц 3-го разряда. Так как единица 3-го разряда содержит 5 единиц 2-го разряда, то надо 353 разделить на 5. Разделив, узнаем, что в 353 пятерках заключается 70 единиц 3-го разряда и 3 единицы 2-го разряда. 70 единиц 3-го разряда превращаем в единицы 4-го разряда; эти последние - в единицы 5-го разряда и. т.д.


У меня вызывают непонимание слова "узнаем сначала, сколько в 1766 заключается единиц 2-го разряда, т.е. пятерок". Для десятичной системы единица 2-го разряда будет десятка.

Так же я не понимаю, почему разделив 1766 на 5 и получив 353 и 1 в остатке, мы считаем что 1 - это единица 1-го разряда.

Помогите, пожалуйста, разобраться.

 
 
 
 Re: Системы счисления. Перевод чисел
Сообщение18.12.2013, 18:04 
Аватара пользователя
Ну для примера: Как записать число $3241$ в десятичной системе счисления?
Делим $3241:10=321(1)$. Получили $1$ в остатке. Это и будет количество единиц первого разряда.
Делим $324:10=32(4)$. Получили $4$ в остатке. Это и будет количество единиц второго разряда.
Делим $32:10=3(2)$. Получили $2$ в остатке. Это и будет количество единиц третьего разряда.
Делим $3:10=0(3)$. Получили $3$ в остатке. Это и будет количество единиц четвёртого разряда.
Итак, наше число $3241_{10}$
Тут всё понятно?

Теперь в пятеричной. Обратите внимание, что деление происходит в десятичной системе — пятёрки, двадцатипятки. Поэтому и количество единиц разряда называется в десятичной. Пятеричные же цифры совпадают с десятичными.

Делим $3241:5=648(1)$. Получили $1$ в остатке. Это и будет количество единиц первого разряда.
Делим $648:5=129(3)$. Получили $3$ в остатке. Это и будет количество единиц второго разряда.
Делим $129:5=25(4)$. Получили $4$ в остатке. Это и будет количество единиц третьего разряда.
Делим $25:5=5(0)$. Получили $0$ в остатке. Это и будет количество единиц четвёртого разряда.
Делим $5:5=1(0)$. Получили $0$ в остатке. Это и будет количество единиц пятого разряда.
Делим $1:5=0(1)$. Получили $1$ в остатке. Это и будет количество единиц шестого разряда.
Итак, наше число $100431_{5}$

Теперь в шестнадцатиричной. Обратите внимание, что деление происходит в десятичной системе. Поэтому и разряды называются в десятичной — шестнадцадки, двухсотпятидесятишестёрки. Поэтому и количество единиц разряда называется в десятичной. Но десятичные цифры совпадают с шестнадцатиричными только до девятки, а потом нужны уже новые цифы.

Делим $3241:16=202(9)$. Получили $9$ в остатке. Это и будет количество единиц первого разряда.
Делим $640:5=12(10)$. Получили $10$ в остатке. Это и будет количество единиц второго разряда.
Делим $12:16=0(12)$. Получили $12$ в остатке. Это и будет количество единиц третьего разряда.
Итак, наше число $CA9_{16}$

 
 
 
 Re: Системы счисления. Перевод чисел
Сообщение19.12.2013, 15:49 
Цитата:
Делим $3241:10=321(1)$. Получили $1$ в остатке. Это и будет количество единиц первого разряда.

Я не могу уловить суть деления.
1. Как узнали, что для получения цифр числа в другой системе счисления нужно применить деление?

С помощью деления мы узнаем сколько частей (делитель) содержится в чем-то (делимое) и какая часть останется после этого (остаток от деления). Вот мы узнаем, что в 3241 содержится 324 десятка (или 324 единицы второго разряда) и 1. С 324 десятками все понятно. Делим мы на 10, поэтому мы узнаем сколько в 3241 содержится десятков. А вот как причислить к единицам первого разряда остаток 1 я не могу понять .

2. Почему остатки от деления образовывают цифры числа в другой системе счисления?

На этот вопрос отвечаю так: нам нужно получить цифры в диапазоне $[0; N)$, где $N$ основание системы счисления, в которой нам нужно получить число. В результате деления на $N$, остатки будут образовывать числа в диапазоне $[0; N)$, так как остаток всегда меньше делителя. Есть ли ещё какие-то объяснения?


Отдельное спасибо за пример с шестнадцатиричной системой счисления. Всегда думал, что этот способ перехода подходит только к системам счисления с меньшим основанием.

 
 
 
 Re: Системы счисления. Перевод чисел
Сообщение19.12.2013, 15:56 
Вся суть в позиционной записи чисел в любой системе счисления: $3241 = 3m^3+2m^2+4m^1+1m^0$ - по определению, для любого $m$, которое является основанием системы счисления.

 
 
 
 Re: Системы счисления. Перевод чисел
Сообщение19.12.2013, 16:06 
Чтобы стало очевиднее, например, объяснение второго примера, записываете эти равенства в развернутом виде: $3241=648\cdot5+1$, далее также расписываете число 648 и ...

 
 
 
 Re: Системы счисления. Перевод чисел
Сообщение19.12.2013, 17:54 
Gts в сообщении #803081 писал(а):
Так же я не понимаю, почему разделив 1766 на 5 и получив 353 и 1 в остатке, мы считаем что 1 - это единица 1-го разряда.

Помогите, пожалуйста, разобраться.
А Вам понятно, что $1766$ в десятичной, это просто сокращенная запись числа $1\cdot 10^3+7\cdot 10^2+6\cdot 10 + 6$?
Так вот, в системах счисления с другими основаниями - все то же самое. Только вместо степеней десятки нужно использовать степени основания системы счисления.

PS: Если и в десятичной непонятно, тогда я - пас :-)

 
 
 
 Re: Системы счисления. Перевод чисел
Сообщение19.12.2013, 22:39 
VAL в сообщении #803506 писал(а):
А Вам понятно, что $1766$ в десятичной, это просто сокращенная запись числа $1\cdot 10^3+7\cdot 10^2+6\cdot 10 + 6$?

Лучше бы в конце написать не просто $6$, а $6\cdot10^0$, это подчеркнет разрядность последней цифры.

 
 
 
 Re: Системы счисления. Перевод чисел
Сообщение19.12.2013, 22:44 
Ага. А $10$ - как $10^1$, как, собственно, уже было написано несколькими постами выше :-)

 
 
 
 Re: Системы счисления. Перевод чисел
Сообщение19.12.2013, 22:50 
Да, еще заметил
Gts в сообщении #803081 писал(а):
У меня вызывают непонимание слова "узнаем сначала, сколько в 1766 заключается единиц 2-го разряда, т.е. пятерок". Для десятичной системы единица 2-го разряда будет десятка.

Видимо, это просто старый учебник, потому что сейчас младший разряд- это нулевой

 
 
 
 Re: Системы счисления. Перевод чисел
Сообщение20.12.2013, 00:49 

(Оффтоп)

Sinoid в сообщении #803644 писал(а):
Видимо, это просто старый учебник

Конец 19-го века, по нему наши прапрадеды учились.

 
 
 
 Re: Системы счисления. Перевод чисел
Сообщение20.12.2013, 13:42 
Цитата:
А Вам понятно, что $1766$ в десятичной, это просто сокращенная запись числа $1\cdot 10^3+7\cdot 10^2+6\cdot 10 + 6$?
Да, это мне понятно.

Цитата:
Так вот, в системах счисления с другими основаниями - все то же самое. Только вместо степеней десятки нужно использовать степени основания системы счисления.
И это понятно.

$3241_{10} = 3 \cdot 10^3+2 \cdot 10^2+4 \cdot 10 ^1+1 \cdot 10^0$ (dec) = 
6 \cdot 10^3+ 2 \cdot 10^2+5 \cdot 10 ^1+1 \cdot 10^0$ (oct) = 
C \cdot 10^2+A \cdot 10 ^1+9 \cdot 10^0$ (hex)
Для десятичной системы перед 10 идет 9, для восьмеричной системы перед 10 идет 007, для шестнадцатеричной системы перед 10 идет 0x0F.

Пробовал представлять число в пятеричной системе так:

$3241 = 648 \cdot 5 + 1 = (129 \cdot 5 + 3) \cdot 5 + 1 = ((25 \cdot 5 + 4) \cdot 5 + 3) \cdot 5 + 1 = ... = (((((0 \cdot 5 + 1) \cdot 5 + 0) \cdot 5 + 0) \cdot 5 + 4) \cdot 5 + 3) \cdot 5 + 1 _{(10)} = (((((0 \cdot 10 + 1) \cdot 10 + 0) \cdot 10 + 0) \cdot 10 + 4) \cdot 10+ 3) \cdot 10 + 1 _{(5)}= ... = 0 \cdot 10^{6} + 1 \cdot 10^{5} + 0 \cdot 10^{4} + 0 \cdot 10^{3} + 4 \cdot 10^{2} + 4 \cdot 10^{1} + 1 \cdot 10^{0} = 100431_{5}
$

Вот после того как я расписал все это ещё раз, я понял как остатки от циклического деления будут образуют число в другой системе счисления.
$3241 : 5 = 648(1)$ это $648 \cdot 5 + 1 = 3241$

Всем спасибо за помощь.

 
 
 
 Re: Системы счисления. Перевод чисел
Сообщение20.12.2013, 13:45 
Аватара пользователя
И в десятичной тоже! Если натуральное число оканчивается шестеркой, эта шестерка — остаток (в житейском смысле) после того, как убрали столько полных десяток, сколько возможно.

 
 
 
 Re: Системы счисления. Перевод чисел
Сообщение20.12.2013, 13:53 
Цитата:
И в десятичной тоже!

Да, конечно.

 
 
 
 Re: Системы счисления. Перевод чисел
Сообщение20.12.2013, 17:41 
Gts в сообщении #803457 писал(а):
Всегда думал, что этот способ перехода подходит только к системам счисления с меньшим основанием.

Если договориться выражать цифры чисел в системах через числа десятичной системы, то можно записывать числа в любых системах счисления.

Например,
$$3241_{10}=12|10|9|_{16}= 11|3|11|_{17}=10|0|1|_{18}=8|18|11|_{19}=8|2|1|_{20}=7|7|7|_{21}=...=8|177|_{383}=...$$

 
 
 [ Сообщений: 14 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group