Перевод чисел из одной системы счисления в другую
Данный конвертер переводит числа между наиболее популярными системами счисления: десятичной, двоичной, восьмеричной, шестнадцатеричной.
Существуют и другие системы счисления, но мы не стали включать их в конвертер из-за низкой популярности.
Для указания системы счисления при записи числа используется нижний индекс, который ставится после числа:
20010 = 110010002 = 3108 = C816
Кратко об основных системах счисления
Десятичная система счисления. Используется в повседневной жизни и является самой распространенной. Все числа, которые нас окружают представлены в этой системе. В каждом разряде такого числа может использоваться только одна цифра от 0 до 9.
Двоичная система счисления. Используется в вычислительной технике. Для записи числа используются цифры 0 и 1.
Восьмеричная система счисления. Также иногда применяется в цифровой технике. Для записи числа используются цифры от 0 до 7.
Перевод в десятичную систему счисления
Перевод из десятичной системы счисления в другие
Делим десятичное число на основание системы, в которую хотим перевести и записываем остатки от деления. Запишем полученные остатки в обратном порядке и получим искомое число.
Переведем число 37510 в восьмеричную систему:
Перевод из двоичной системы в восьмеричную
Так же как и в первом способе разбиваем число на группы. Но вместо преобразований в скобках просто заменим полученные группы (триады) на соответствующие цифры восьмеричной системы, используя таблицу триад:
Перевод из двоичной системы в шестнадцатеричную
Также как и в первом способе разбиваем число на группы по 4 цифры. Заменим полученные группы (тетрады) на соответствующие цифры шестнадцатеричной системы, используя таблицу тетрад:
| Тетрада | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Цифра | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
Перевод из восьмеричной системы в двоичную
Каждый разряд восьмеричного числа будем делить на 2 и записывать остатки в обратном порядке, формируя группы по 3 разряда двоичного числа. Если в группе получилось меньше 3 разрядов, тогда дополняем нулями. Записываем все группы по порядку, отбрасываем ведущие нули, если имеются, и получаем двоичное число.
Используем таблицу триад:
Каждую цифру исходного восьмеричного числа заменяется на соответствующие триады. Ведущие нули самой первой триады отбрасываются.
Перевод из шестнадцатеричной системы в двоичную
Аналогично переводу из восьмеричной в двоичную, только группы по 4 разряда.
Используем таблицу тетрад:
| Цифра | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Тетрада | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
Каждую цифру исходного числа заменяется на соответствующие тетрады. Ведущие нули самой первой тетрады отбрасываются.
Перевод из восьмеричной системы в шестнадцатеричную и наоборот
Такую конвертацию можно осуществить через промежуточное десятичное или двоичное число. То есть исходное число сначала перевести в десятичное (или двоичное), и затем полученный результат перевести в конечную систему счисления.
Шестнадцатеричные цифры, преобразование шестнадцатеричного числа в десятичное
Умение преобразовывать шестнадцатеричные числа может быть полезно не только программистам, но и дизайнерам, ведь триада RRGGBB есть не что иное, как «машинные» компоненты для красного, зелёного и синего соответственно — от 0 до 255 каждое. Конечно, графические редакторы содержат палитры со встроенными преобразователями, а стандартный калькулятор операционной системы умеет справляться с этой задачей, но порой гораздо удобнее самому «накинуть +14» к требуемой компоненте, а не запускать сторонние программы.
И последнее: я убеждён, что рядовому пользователю эти навыки не понадобятся с вероятностью 99.…%. В общем, вы предупреждены 

Таблица умножение от 11 до 16
11 × 2 = 22
11 × 3 = 33
11 × 4 = 44
11 × 5 = 55
11 × 6 = 66
11 × 7 = 77
11 × 8 = 88
11 × 9 = 99
11 × 10 = 110
11 × 11 = 121
11 × 12 = 132
11 × 13 = 143
11 × 14 = 154
11 × 15 = 165
11 × 16 = 176
12 × 2 = 24
12 × 3 = 36
12 × 4 = 48
12 × 5 = 60
12 × 6 = 72
12 × 7 = 84
12 × 8 = 96
12 × 9 = 108
12 × 10 = 120
12 × 11 = 132
12 × 12 = 144
12 × 13 = 156
12 × 14 = 168
12 × 15 = 180
12 × 16 = 192
13 × 2 = 26
13 × 3 = 39
13 × 4 = 52
13 × 5 = 65
13 × 6 = 78
13 × 7 = 91
13 × 8 = 104
13 × 9 = 117
13 × 10 = 130
13 × 11 = 143
13 × 12 = 156
13 × 13 = 169
13 × 14 = 182
13 × 15 = 195
13 × 16 = 208
14 × 2 = 28
14 × 3 = 42
14 × 4 = 56
14 × 5 = 70
14 × 6 = 84
14 × 7 = 98
14 × 8 = 112
14 × 9 = 126
14 × 10 = 140
14 × 11 = 154
14 × 12 = 168
14 × 13 = 182
14 × 14 = 196
14 × 15 = 210
14 × 16 = 224
15 × 2 = 30
15 × 3 = 45
15 × 4 = 60
15 × 5 = 75
15 × 6 = 90
15 × 7 = 105
15 × 8 = 120
15 × 9 = 135
15 × 10 = 150
15 × 11 = 165
15 × 12 = 180
15 × 13 = 195
15 × 14 = 210
15 × 15 = 225
15 × 16 = 240
16 × 2 = 32
16 × 3 = 48
16 × 4 = 64
16 × 5 = 80
16 × 6 = 96
16 × 7 = 112
16 × 8 = 128
16 × 9 = 144
16 × 10 = 160
16 × 11 = 176
16 × 12 = 192
16 × 13 = 208
16 × 14 = 224
16 × 15 = 240
16 × 16 = 256
Следующим шагом необходимо соотнести десятичные числа от 10 до 15 с шестнадцатеричными цифрами от A до F.
Таблица соответствия шестнадцатеричных цифр
| HEX (шестнадцатеричная) | DEC (десятичная) |
|---|---|
| 0 | 0 |
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
| 4 | 4 |
| 5 | 5 |
| 6 | 6 |
| 7 | 7 |
| 8 | 8 |
| 9 | 9 |
| A | 10 |
| B | 11 |
| C | 12 |
| D | 13 |
| E | 14 |
| F | 15 |
А теперь вспомним поразрядное умножение из предыдущей статьи, для цифры 7. Здесь будет лишь поправка на другую систему счисления (не на 10, как там, а на 16).
Обычно в компьютерной литературе, для однозначного указания основания системы счисления, применяется следующая нотация:
— шестнадцатеричное число — 0x100 (256 в десятичной, признак — 0x в начале)
— десятичное число — 100 (наша, человеческая, система счисления)
— восьмеричное число — 0100 (64 в десятичной, признак — ведущий ноль)
— двоичное число — 0b100 (4 в десятичной, признак — 0b в начале)
Преобразование шестнадцатеричного числа в десятичное
Для начала, небольшой рисунок:
Для преобразования требуется каждую цифру числа умножить на «разряд», в котором оно находится. Из курса начальной школы мы помним, что позиции, занимаемые в числовой строке, называются (справа налево) единицы, десятки, сотни и т. д. Здесь почти то же самое, но с поправкой на систему счисления. Каждый следующий разряд — это +1 степень текущей системы счисления. Любое число в степени ноль — это ноль, в степени 1 — самом число, в степени 2 (квадрат) — число, умноженное само на себя и т. д.
Для наглядности привожу пример. Допустим, возьмём шестнадцатеричное число 0x1F8. Нам требуется перевести его в десятичную систему, поэтому запишем (0x — это признак основания!):
1F816 = 116 × 16 2 + F16 × 16 1 + 816 × 16 0 = 1 × 256 + 15 × 16 + 8 × 1 = 256 + 240 + 8 = 504
Обе таблички нам пригодились: благодаря второй мы переводим числа из шестнадцатеричной системы в десятичную, благодаря первой — легко перемножаем «больше» числа.
Небольшое отступление
А знаете ли вы, что у нас сейчас могла бы использоваться двенадцатеричная система счисления, используемая ещё шумерцами? По одной и версий, этому способствовало количество фаланг пальцев руки. Взгляните на рисунок:
Скорее всего, вам сложно это представить. Но, взглянув на это под другим углом, можем убедиться, что выбор был бы очень хорош, ведь 12 делится без остатка на 2, 3, 4, 6 (в то время, как 10 можно разделить лишь на 2 и 5). Естественно, умножения и деления на степень числа 12 были так же просты, как сейчас аналогичные операции для степени числа 10.
Выучив эти таблицы, любой человек легко сможет переводить компьютерные байты в привычные числа. При желании, как следует потренировавшись и «расширив объём» краткосрочной памяти, станут доступны и более сложные варианты. Но, как уже говорилось чуть ранее, манипуляции с байтами мало кому нужны, не говоря о чём-то большем.
ПЕРЕВОД ЧИСЕЛ ИЗ ШЕСТНАДЦАТЕРИЧНОЙ СИСТЕМЫ В ДЕСЯТИЧНУЮ
ПЕРЕВОД ЧИСЕЛ ИЗ ВОСЬМЕРИЧНОЙ СИСТЕМЫ В ДЕСЯТИЧНУЮ
Восемь раз отмерь, один раз переведи.
Алгоритм перевода чисел из восьмеричной в десятичную систему счисления аналогичен уже рассматривавшемуся нами в разделе Перевод чисел из двоичной системы в десятичную. Различие состоит лишь в том, что для восьмеричной системы счисления основанием является число 8, а правило перевода в данном случае может быть сформулировано в следующем виде:
Для перевода восьмеричного числа в десятичное необходимо это число представить в виде суммы произведений степеней основания восьмеричной системы счисления на соответствующие цифры в разрядах восьмеричного числа.
Например, требуется перевести восьмеричное число 2357 в десятичное. В этом числе 4 цифры и 4 разряда ( разряды считаются, начиная с нулевого, которому соответствует младший бит). В соответствии с уже известным нам правилом представим его в виде суммы степеней с основанием 8:
23578 = (2·8 3 )+(3·8 2 )+(5·8 1 )+(7·8 0 ) = 2·512 + 3·64 + 5·8 + 7·1 = 126310
Для вычислений «вручную» и решения примеров и контрольных заданий вам могут пригодиться таблицы степеней оснований изучаемых систем счисления (2, 8, 10, 16), приведенные вПриложении.
Каждый Охотник Желает Знать, Где Сидит Фазан.
Запишите в шестнадцатеричной системе счисления все цвета,
встречающиеся в этом мнемоническом правиле. Слабо?
После изучения предыдущего раздела переформулировать алгоритм перевода чисел из шестнадцатеричной в десятичную систему счисления не составляет никакого труда. Помнить следует лишь о том, что для шестнадцатеричной системы счисления основанием является число 16, и правило перевода в данном случае может быть сформулировано в следующем виде:
Для перевода шестнадцатеричного числа в десятичное необходимо это число представить в виде суммы произведений степеней основания шестнадцатеричной системы счисления на соответствующие цифры в разрядах шестнадцатеричного числа.
Например, требуется перевести шестнадцатеричное число F45ED23C в десятичное. В этом числе 8 цифр и 8 разрядов (помним, что разряды считаются, начиная с нулевого, которому соответствует младший бит). В соответствии с вышеуказанным правилом представим его в виде суммы степеней с основанием 16:
F45ED23C16 = (15·16 7 )+(4·16 6 )+(5·16 5 )+(14·16 4 )+(13·16 3 )+(2·16 2 )+(3·16 1 )+(12·16 0 ) = 409985490810
Для вычислений «вручную» и решения примеров и контрольных заданий вам могут пригодиться таблицы степеней оснований изучаемых систем счисления (2, 8, 10, 16), приведенные вПриложении.
Для перевода чисел из десятичной системы счисления в двоичную используют так называемый «алгоритм замещения», состоящий из следующей последовательности действий:
1. Делим десятичное число А на 2. Частное Q запоминаем для следующего шага, а остаток a записываем как младший бит двоичного числа.
2. Если частное q не равно 0, принимаем его за новое делимое и повторяем процедуру, описанную в шаге 1. Каждый новый остаток (0 или 1) записывается в разряды двоичного числа в направлении от младшего бита к старшему.
3. Алгоритм продолжается до тех пор, пока в результате выполнения шагов 1 и 2 не получится частное Q = 0 и остаток a = 1.
Например, требуется перевести десятичное число 247 в двоичное. В соответствии с приведенным алгоритмом получим:
Представление чисел в ЭВМ: естественная и нормальная формы(+методичка)
В ЭВМ используются следующие формы представления данных:
• числа с фиксированной точкой (запятой) или естественная форма;
• числа с плавающей точкой (запятой) или нормальная форма;
• десятичные числа;
• символьные данные.
Числа с фиксированной точкой
В общем случае разрядная сетка ЭВМ для размещения чисел в форме с фиксированной точкой показана на рисунке.
На рисунке показано п разрядов для представления целой части числа и r разрядов — для дробной части числа.
a) фиксированная 
При заданных п иr диапазон изменения модулей чисел, коды которых могут быть представлены в данной разрядной сетке, определяется неравенством
Использование формы с фиксированной точкой для представления смешанных (с целой и дробной частью) чисел в ЭВМ практически не встречается. Как правило, используются ЭВМ либо с дробной арифметикой (п=0), либо с целочисленной арифметикой (r=0).
Форма представления чисел с фиксированной точкой упрощает аппаратную реализацию ЭВМ, уменьшает время выполнения машинных операций, однако при решении задач на машине необходимо постоянно следить за тем, чтобы все исходные данные, промежуточные и окончательные результаты находились в допустимом диапазоне представления. Если этого не соблюдать, то возможно переполнение разрядной сетки, и результат вычислений будет неверным. От этих недостатков в значительной степени свободны ЭВМ, использующие форму представления чисел с плавающей точкой, или нормальную форму.
Числа с плавающей точкой
b) рис 14.б с плавающей точкой
В нормальной форме число представляется в виде произведения X=mq p
где т — мантисса числа;
q — основание системы счисления;
р — порядок.
Для задания числа в нормальной форме требуется задать знаки мантиссы и порядка, их модули в q-ичном коде, а также основание системы счисления. Нормальная форма представления чисел неоднозначна, ибо взаимное изменение т и р приводит к плаванию точки (запятой). Отсюда произошло название формы представления чисел.
Для однозначности представления чисел в ЭВМ используется нормальная нормализованная форма, в которой положение точки всегда задается перед значащей цифрой мантиссы, т. е. выполняется условие
В общем случае разрядную сетку ЭВМ для размещения чисел в нормальной форме можно представить в виде, изображенном на рис. Разрядная сетка содержит:
· разряд для знака мантиссы;
· r цифровых разрядов для q-ичного кода модуля мантиссы;
· разряд для кода знака порядка;
· s разрядов для q-ичного кода модуля порядка.
Диапазон представления модулей чисел в нормальной нормализованной форме определяется следующим неравенством:
Одно и то же число может быть записано в различных формах
Естественная форма Нормальная форма
В конкретной ЭВМ диапазон представления чисел с плавающей точкой зависит от основания системы и числа разрядов для представления порядка.
При этом у одинаковых по длине форматов чисел с плавающей точкой с увеличением основания системы счисления существенно расширяется диапазон представляемых чисел.
Точность вычислений при использовании формата с плавающей точкой определяется числом разрядов мантиссы r. Она увеличивается с увеличением числа разрядов.
При представлении информации в виде десятичных многоразрядных чисел каждая десятичная цифра заменяется двоично-десятичным кодом. Для ускорения обмена информацией, экономии памяти и удобства операций над десятичными числами предусматриваются специальные форматы их представления: зонный (распакованный) и упакованный. Зонный формат используется в операциях ввода-операций. Для этого в ЭВМ имеются специальные команды упаковки и распаковки десятичных чисел.
Дата добавления: 2013-12-12 ; Просмотров: 2299 ; Нарушение авторских прав?
Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет






