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

Перевод из любой системы счисления в любую

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

Алгоритм перевода из произвольных чисел в любую систему счисления

Подробно о переводе в десятичную систему смотрите на этой странице, о переводе из десятичной в q-ричную- здесь. Для целостного понимания, разберем несколько примеров, но для начала вспомним алфавиты в популярных системах счисления:

ОснованиеНазваниеАлфавит
2Двоичная0, 1
8Восьмеричная0, 1, 2, 3, 4, 5, 6, 7
10Десятичная0, 1, 2, 3, 4, 5, 6, 7, 8, 9
16Шестнадцатеричная0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

Перевод целого q-ичного числа в систему счисления с новым основанием

Пример 1: перевести число 1101100 из двоичной в троичную систему.

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

Для перевода шестнадцатеричного числа 1a316 в десятичную систему, воспользуемся формулой:

11011002=1 ∙ 2 6 + 1 ∙ 2 5 + 0 ∙ 2 4 + 1 ∙ 2 3 + 1 ∙ 2 2 + 0 ∙ 2 1 + 0 ∙ 2 0 = 1 ∙ 64 + 1 ∙ 32 + 0 ∙ 16 + 1 ∙ 8 + 1 ∙ 4 + 0 ∙ 2 + 0 ∙ 1 = 64 + 32 + 0 + 8 + 4 + 0 + 0 = 10810

Полученное число 108 переведем из десятичной системы счисления в троичную. Для этого, осуществим последовательное деление на 3, до тех пор пока остаток не будет меньше чем 3.

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

Полученные остатки записываем в обратном порядке, таким образом:

Пример 2: перевести число 345 из шестеричной в восьмеричную систему.

Аналогично предыдущему примеру произведем вычисления:

3456=3 ∙ 6 2 + 4 ∙ 6 1 + 5 ∙ 6 0 = 3 ∙ 36 + 4 ∙ 6 + 5 ∙ 1 = 108 + 24 + 5 = 13710

Полученное число 137 переведем из десятичной системы счисления в восьмеричную. Для этого, осуществим последовательное деление на 8, до тех пор пока остаток не будет меньше чем 8.

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

Полученные остатки записываем в обратном порядке, таким образом:

Перевод любого дробного числа из одной системы в другую

Пример 3: перевести 231.20 из четверичной в семеричную систему счисления.

Общий смысл алгоритма перевода дробного числа, аналогичен алгоритму перевода целого, т.е. вначале переводим в десятичную, а затем в семеричную:

1. Для перевода числа 231.20 в десятичную систему воспользуемся формулой:

Обратите внимание! Формула перевода дробного числа в десятичную систему, очень похожа на формулу перевода целого, однако немного отличается.

2. Полученное число 45.5 переведем из десятичной системы счисления в семеричную. Т.к. полученное число содержит дробную часть, нам потребуется перевести вначале целую часть, а затем дробную. Таким образом необходимо:

2.1 Для того, чтобы перевести число 45 из десятичной системы счисления в 7-ую, необходимо осуществить последовательное деление на 7, до тех пор пока остаток не будет меньше чем 7.

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

Полученные остатки записываем в обратном порядке, таким образом:

2.2 Для перевода десятичной дроби 0.5 в 7-ую систему, необходимо выполнить последовательное умножение дроби на 7, до тех пор, пока дробная часть не станет равной 0 или пока не будет достигнута заданная точность вычисления. Получаем:

0.5 ∙ 7 = 3.5 (3)
0.5 ∙ 7 = 3.5 (3)
0.5 ∙ 7 = 3.5 (3)
0.5 ∙ 7 = 3.5 (3)
0.5 ∙ 7 = 3.5 (3)
0.5 ∙ 7 = 3.5 (3)
0.5 ∙ 7 = 3.5 (3)
0.5 ∙ 7 = 3.5 (3)
0.5 ∙ 7 = 3.5 (3)
0.5 ∙ 7 = 3.5 (3)
0.5 ∙ 7 = 3.5 (3)

Ответом станет прямая последовательность целых частей произведения. Т.е.

2.3. Осталось соединить переведенные части, таким образом:

Источник

Перевод чисел из одной системы счисления в другую онлайн

С помощю этого онлайн калькулятора можно перевести целые и дробные числа из одной системы счисления в другую. Дается подробное решение с пояснениями. Для перевода введите исходное число, задайте основание сисемы счисления исходного числа, задайте основание системы счисления, в которую нужно перевести число и нажмите на кнопку «Перевести». Теоретическую часть и численные примеры смотрите ниже.

Предупреждение

Перевод целых и дробных чисел из одной системы счисления в любую другую − теория, примеры и решения

Существуют позиционные и не позиционные системы счисления. Арабская система счисления, которым мы пользуемся в повседневной жизни, является позиционной, а римская − нет. В позиционных системах счисления позиция числа однозначно определяет величину числа. Рассмотрим это на примере числа 6372 в десятичном системе счисления. Пронумеруем это число справа налево начиная с нуля:

число6372
позиция3210

Тогда число 6372 можно представить в следующем виде:

Число 10 определяет систему счисления (в данном случае это 10). В качестве степеней взяты значения позиции данного числа.

Рассмотрим вещественное десятичное число 1287.923. Пронумеруем его начиная с нуля позиции числа от десятичной точки влево и вправо:

число1287.923
позиция3210-1-2-3

Тогда число 1287.923 можно представить в виде:

В общем случае формулу можно представить в следующем виде:

В таблице Таб.1 представлены числа в разных системах счисления.

Таблица 1
Система счисления
102816
0000
1111
21022
31133
410044
510155
611066
711177
81000108
91001119
10101012A
11101113B
12110014C
13110115D
14111016E
15111117F

Перевод чисел из одной системы счисления в другую

Для перевода чисел с одной системы счисления в другую, проще всего сначала перевести число в десятичную систему счисления, а затем, из десятичной системы счисления перевести в требуемую систему счисления.

Перевод чисел из любой системы счисления в десятичную систему счисления

С помощью формулы (1) можно перевести числа из любой системы счисления в десятичную систему счисления.

Пример 1. Переводить число 1011101.001 из двоичной системы счисления (СС) в десятичную СС. Решение:

Пример 2. Переводить число 1011101.001 из восьмеричной системы счисления (СС) в десятичную СС. Решение:

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

Пример 3. Переводить число AB572.CDF из шестнадцатеричной системы счисления в десятичную СС. Решение:

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

Перевод чисел из десятичной системы счисления в другую систему счисления

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

Пример 4. Переведем число 159 из десятичной СС в двоичную СС:

1592
158792
178392
138192
11892
1842
1422
021
0

Как видно из Рис. 1, число 159 при делении на 2 дает частное 79 и остаток 1. Далее число 79 при делении на 2 дает частное 39 и остаток 1 и т.д. В результате построив число из остатков деления (справа налево) получим число в двоичной СС: 10011111. Следовательно можно записать:

Пример 5. Переведем число 615 из десятичной СС в восьмеричную СС.

6158
608768
77298
481
1

При приведении числа из десятичной СС в восьмеричную СС, нужно последовательно делить число на 8, пока не получится целый остаток меньшее, чем 8. В результате построив число из остатков деления (справа налево) получим число в восьмеричной СС: 1147(см. Рис. 2). Следовательно можно записать:

Пример 6. Переведем число 19673 из десятичной системы счисления в шестнадцатеричную СС.

1967316
19664122916
912167616
13644
12

Далее рассмотрим перевод правильных десятичных дробей в двоичную СС, в восьмеричную СС, в шестнадцатеричную СС и т.д.

Для перевода правильных десятичных дробей (вещественное число с нулевой целой частью) в систему счисления с основанием s необходимо данное число последовательно умножить на s до тех пор, пока в дробной части не получится чистый нуль, или же не получим требуемое количество разрядов. Если при умножении получится число с целой частью, отличное от нуля, то эту целую часть не учитывать (они последовательно зачисливаются в результат).

Рассмотрим вышеизложенное на примерах.

Пример 7. Переведем число 0.214 из десятичной системы счисления в двоичную СС.

0.214
x2
00.428
x2
00.856
x2
10.712
x2
10.424
x2
00.848
x2
10.696
x2
10.392

Как видно из Рис.4, число 0.214 последовательно умножается на 2. Если в результате умножения получится число с целой частью, отличное от нуля, то целая часть записывается отдельно (слева от числа), а число записывается с нулевой целой частью. Если же при умножении получиться число с нулевой целой частью, то слева от нее записывается нуль. Процесс умножения продолжается до тех пор, пока в дробной части не получится чистый нуль или же не получим требуемое количество разрядов. Записывая жирные числа (Рис.4) сверху вниз получим требуемое число в двоичной системе счисления: 0. 0011011.

Следовательно можно записать:

Пример 8. Переведем число 0.125 из десятичной системы счисления в двоичную СС.

0.125
x2
00.25
x2
00.5
x2
10.0

Для приведения числа 0.125 из десятичной СС в двоичную, данное число последовательно умножается на 2. В третьем этапе получилось 0. Следовательно, получился следующий результат:

Пример 9. Переведем число 0.214 из десятичной системы счисления в шестнадцатеричную СС.

0.214
x16
30.424
x16
60.784
x16
120.544
x16
80.704
x16
110.264
x16
40.224

Следуя примерам 4 и 5 получаем числа 3, 6, 12, 8, 11, 4. Но в шестнадцатеричной СС числам 12 и 11 соответствуют числа C и B. Следовательно имеем:

Пример 10. Переведем число 0.512 из десятичной системы счисления в восьмеричную СС.

0.512
x8
40.096
x8
00.768
x8
60.144
x8
10.152
x8
10.216
x8
10.728

Пример 11. Переведем число 159.125 из десятичной системы счисления в двоичную СС. Для этого переведем отдельно целую часть числа (Пример 4) и дробную часть числа (Пример 8). Далее объединяя эти результаты получим:

Пример 12. Переведем число 19673.214 из десятичной системы счисления в шестнадцатеричную СС. Для этого переведем отдельно целую часть числа (Пример 6) и дробную часть числа (Пример 9). Далее объединяя эти результаты получим:

Источник

Урок 32. Перевод чисел между системами счисления

Общие сведения:

При программировании мы часто сталкиваемся с необходимостью перевода чисел между системами счисления, по основанию: 2, 4, 8, 16 и 10.

Основание системы счисления указывает какое количество цифр используется в этой системе для написания чисел:

Можно использовать любую систему счисления, например по основанию 12 (счет дюжинами), но наиболее популярными при программировании, являются: десятичная, шестнадцатеричная и двоичная, системы счисления.

Все выше перечисленные системы счисления относятся к позиционным системам. Значение числа зависит не только от того из каких цифр оно состоит, но и в какой последовательности они записаны. Например число 1234 не равно числу 4321.

Методы представления чисел в разных системах счисления:

Перевод чисел в десятичную систему счисления:

Для перевода числа из любой системы счисления в десятичную нужно сложить все цифры этого числа, предварительно умножив каждое из них на основание системы счисления, из которой производится перевод, возведя её в степень соответствующую позиции цифры в числе:

Σ(цифра_числа * основание_системы позиция_цифры )

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

Перевод чисел из десятичной системы счисления:

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

Примеры перевода чисел из десятичной системы счисления:

Простой метод перевода:

Легче всего переводить числа через двоичную систему счисления. О том как это сделать рассказано в нашем видеоуроке.

Источник

Алгебраическая конкатенация и её возможности по переводу чисел между системами счисления

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

Алгебраическая конкатенация

Для начала, еще раз, распишем, что такое «Алгебраическая конкатенация».

Для примера возьмем число 10958 и представим его с операцией конкатенации, а именно: 1‖0‖9‖5‖8 = (((1 * 10 + 0) * 10 + 9) * 10 + 5) * 10 + 8.

Т.е операция «конкатенации» это: a ‖ b = (a * 10) + b; Но 10 — это «хитрое» число… Это число следующие за максимальным в системе счисления, ну т.е. это просто основание системы счисления т.е. общий вид такой:

a ‖ b = (a * m) + b, где m – основание системы счисления представленное в обозначении самой системы.

Но такое определение мне не очень нравится, ибо m больше чем возможные числа внутри системы. Давайте сделаем чуть хитрее.

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

, где m_1 — это целое число означающее 1 в системе счисления, а m^k — основание системы счисления. Вот теперь получилось красиво с точки зрения определения, но
a ‖ b = (a * 10) + b – легче для восприятия.

Давайте, на всякий случай, проверим, что действительно это работает и пересчитаем описанные выше операции на 10958.

Двоичная: 10 1010 1100 1110 = 1‖0‖1‖0‖1‖0‖1‖1‖0‖0‖1‖1‖1‖0 = ((((((((((((1 * 10 + 0) * 10 + 1) * 10 + 0) * 10 + 1) * 10 + 0) * 10 + 1) * 10 + 1) * 10 + 0) * 10 + 0) * 10 + 1) * 10 + 1) * 10 + 1) * 10 + 0

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

Восьмеричная: 25316 = 2‖5‖3‖1‖6 = (((2 * 10 + 5) * 10 + 3) * 10 + 1) * 10 + 6

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

Шестнадцатеричная 2ACE = 2‖A‖C‖E = ((2 * 10 + A) * 10 + C) * 10 + E

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

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

1) Операция конкатенации неассоциативна.

То есть, если нужно выполнить конкатенацию трёх цифр, то от расстановки скобок результат изменится: ( 1 ‖ 2) ‖ 3 = 123, и в то же время 1 ‖ ( 2 ‖ 3 ) = 33.

2) Операция конкатенации некоммутативна.

В самом деле, wiki ‖ media = wikimedia, но media ‖ wiki = mediawiki ≠ wikimedia. От перестановки операндов меняется результат операции, что и означает её некоммутативность.

3) Пустое слово — ε, — является нейтральным элементом (единицей) операции конкатенации.
То есть, если ε— пустое слово, то для любого слова α выполнено равенство: ε ‖ a = a ‖ ε = a

4) Длина (количество букв) конкатенации слов равна сумме длин операндов:
|α ‖ β| = |α| + |β|.

Классический способ смены системы счисления

Но для начала рассмотрим классический способ перевода чисел из десятичной системы в восьмеричную. Для это используется операция деления и взятие остатка от деления.

Для примера возьмем 672 и переведем его восьмеричную систему счисления.

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

А перевод числа 934 в шестнадцатеричную систему счисления выглядит так.

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

Количество тактов по расчету чисел здесь довольно больше.

Более того перевод целого числа в систему счисления с новым основанием всегда делается через десятичную систему счисления. Т.е. число из исходной системы счисления загоняем в десятичное, а потом это число из десятичное систему счисления переводим в финальную систему счисления.
Как-то очень муторно…

Есть конечно таблицы триад и тетрад. Которые позволяют переводить числа из двоичной системы счисления в восьмеричную и шестнадцатеричную. Но это всё.

Смена системы счисления через алгебраическую конкатенацию

Вчера удалось понять, что операция «алгебраической конкатенации» позволяет нам упростить перевод до базового умножения. И переводить из любой системы счислению в любую другую без промежуточного звена, но нам потребуется пара таблиц-представлений.

Таблица 1 – представление цифр в разных системах счисления:

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

По горизонтали мы видим здесь представление числа в разных система счисления, а по вертикали указана основание системы счисления.

Далее распишем как выглядят основания одной системы счисления в другой системе счисления. Т.е. размерность системы в представлении другой системы. Например, основание десятичной системы счисления в шестнадцатеричной выглядит так:

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

Таблица 2 – множители основания системы в разных система счисления.

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

По горизонтали здесь исходная система счисления, а по вертикали – та, в которую хотим перевести.

Получается, чтобы перевести число 934 из десятичной системы счисления в шестнадцатеричную мы просто берем числа из таблицы.
9‖3‖4
= (9 * 10 + 3) * 10 + 4 — запись в десятичной системе
= (9 * A + 3) * A + 4 — здесь и далее уже шестнадцатеричная система
= (5A + 3) * A + 4
= 5D * A + 4
= 3A2 + 4
= 3A6

Возьмем еще одно число, на этот раз в двоичной системе счисления 1101011, и попробуем получить восьмеричную, потом десятичную и обратно в двоичную
1101011
= 1‖1‖0‖1‖0‖1‖1 — запись в двоичной системе
= (((((1 * 10 + 1) * 10 + 0) * 10 + 1) * 10 + 0) * 10 + 1) * 10 + 1 — запись в двоичной системе
= (((((1 * 2 + 1) * 2 + 0) * 2 + 1) * 2 + 0) * 2 + 1) * 2 + 1 — восьмеричная система
= 153 — восьмеричная система
= 1‖5‖3
= (1 * 10 + 5) * 10 + 3 — восьмеричная система
= (1 * 8 + 5) * 8 + 3 – в десятичной системе
= 107 – в десятичной системе
= 1‖0‖7 – в десятичной системе
= (1 * 10 + 0) * 10 + 7 – в десятичной системе
= (1 * 1010 + 0) * 1010 + 111- запись в двоичной системе
= 1101011 — запись в двоичной системе.

Собственно, этим можно заниматься весь день.

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

Вывод

По сути мы получили универсальную систему перевода целых чисел. В которой не нужно ни деление и взятие остатков. И даже перевода во вспомогательную систему счисления.
Но нужно будет подумать над дробной частью, что-то сходу она мне не поддалась…

Я поискал в сети способы перевода одной системы в другую, но что-то везде всё упирается во взятие остатков, а прямого перевода через умножение я так и не нашел. Может плохо искал?
Ведь по факту, с точки зрения визуального представление, — это просто смещение числа по разрядам и всё… Странно как-то, что нет описания такого просто решения… Ибо больше напоминает математический фокус, чем что-то новое и необычное. В чем я не прав? Жду ваших замечаний.

Источник

Системы счисления. Перевод из одной системы в другую.

1. Порядковый счет в различных системах счисления.

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

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

Поскольку у нас десятичная система счисления, мы имеем 10 символов (цифр) для построения чисел. Начинаем порядковый счет: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Цифры закончились. Мы увеличиваем разрядность числа и обнуляем младший разряд: 10. Затем опять увеличиваем младший разряд, пока не закончатся все цифры: 11, 12, 13, 14, 15, 16, 17, 18, 19. Увеличиваем старший разряд на 1 и обнуляем младший: 20. Когда мы используем все цифры для обоих разрядов (получим число 99), опять увеличиваем разрядность числа и обнуляем имеющиеся разряды: 100. И так далее.

Попробуем сделать то же самое в 2-ной, 3-ной и 5-ной системах (введем обозначение для 2-ной системы, для 3-ной и т.д.):

0000
1111
21022
311103
4100114
51011210
61102011
71112112
810002213
9100110014
10101010120
11101110221
12110011022
13110111123
14111011224
15111112030

Если система счисления имеет основание больше 10, то нам придется вводить дополнительные символы, принято вводить буквы латинского алфавита. Например, для 12-ричной системы кроме десяти цифр нам понадобятся две буквы ( и ):

00
11
22
33
44
55
66
77
88
99
10
11
1210
1311
1412
1513

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

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

Пример 1. Переведем десятичное число 46 в двоичную систему счисления.

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

Пример 2. Переведем десятичное число 672 в восьмеричную систему счисления.

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

Пример 3. Переведем десятичное число 934 в шестнадцатеричную систему счисления.

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

3. Перевод из любой системы счисления в десятичную.

Для того, чтобы научиться переводить числа из любой другой системы в десятичную, проанализируем привычную нам запись десятичного числа.
Например, десятичное число 325 – это 5 единиц, 2 десятка и 3 сотни, т.е.

Точно так же обстоит дело и в других системах счисления, только умножать будем не на 10, 100 и пр., а на степени основания системы счисления. Для примера возьмем число 1201 в троичной системе счисления. Пронумеруем разряды справа налево начиная с нуля и представим наше число как сумму произведений цифры на тройку в степени разряда числа:

Это и есть десятичная запись нашего числа, т.е.

Пример 4. Переведем в десятичную систему счисления восьмеричное число 511.

Пример 5. Переведем в десятичную систему счисления шестнадцатеричное число 1151.

4. Перевод из двоичной системы в систему с основанием «степень двойки» (4, 8, 16 и т.д.).

Для преобразования двоичного числа в число с основанием «степень двойки» необходимо двоичную последовательность разбить на группы по количеству цифр равному степени справа налево и каждую группу заменить соответствующей цифрой новой системы счисления.

Например, Переведем двоичное 1100001111010110 число в восьмеричную систему. Для этого разобьем его на группы по 3 символа начиная справа (т.к. ), а затем воспользуемся таблицей соответствия и заменим каждую группу на новую цифру:

Таблицу соответствия мы научились строить в п.1.

00
11
102
113
1004
1015
1106
1117

Пример 6. Переведем двоичное 1100001111010110 число в шестнадцатеричную систему.

00
11
102
113
1004
1015
1106
1117
10008
10019
1010A
1011B
1100C
1101D
1110E
1111F

5.Перевод из системы с основанием «степень двойки» (4, 8, 16 и т.д.) в двоичную.

Этот перевод аналогичен предыдущему, выполненному в обратную сторону: каждую цифру мы заменяем группой цифр в двоичной системе из таблицы соответствия.

Пример 7. Переведем шестнадцатеричное число С3A6 в двоичную систему счисления.

Для этого каждую цифру числа заменим группой из 4 цифр (т.к. ) из таблицы соответствия, дополнив при необходимости группу нулями вначале:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *