Перевод чисел из одной системы счисления в другую
Данный конвертер переводит числа между наиболее популярными системами счисления: десятичной, двоичной, восьмеричной, шестнадцатеричной.
Существуют и другие системы счисления, но мы не стали включать их в конвертер из-за низкой популярности.
Для указания системы счисления при записи числа используется нижний индекс, который ставится после числа:
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 |
Каждую цифру исходного числа заменяется на соответствующие тетрады. Ведущие нули самой первой тетрады отбрасываются.
Перевод из восьмеричной системы в шестнадцатеричную и наоборот
Такую конвертацию можно осуществить через промежуточное десятичное или двоичное число. То есть исходное число сначала перевести в десятичное (или двоичное), и затем полученный результат перевести в конечную систему счисления.
Перевод чисел в различные системы счисления с решением
Исходное число записано в -ой системе счисления.
Хочу получить запись числа в -ой системе счисления.
Системы счисления
Системы счисления делятся на два типа: позиционные и не позиционные. Мы пользуемся арабской системой, она является позиционной, а есть ещё римская − она как раз не позиционная. В позиционных системах положение цифры в числе однозначно определяет значение этого числа. Это легко понять, рассмотрев на примере какого-нибудь числа.
Пример 1. Возьмём число 5921 в десятичной системе счисления. Пронумеруем число справа налево начиная с нуля:
Число: | 5 | 9 | 2 | 1 |
Позиция: | 3 | 2 | 1 | 0 |
Пример 2. Рассмотрим вещественное десятичное число 1234.567. Пронумеруем его начиная с нулевой позиции числа от десятичной точки влево и вправо:
Число: | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Позиция: | 3 | 2 | 1 | 0 | -1 | -2 | -3 |
Перевод чисел из одной системы счисления в другую
Наиболее простым способом перевода числа с одной системы счисления в другую, является перевод числа сначала в десятичную систему счисления, а затем, полученного результата в требуемую систему счисления.
Перевод чисел из любой системы счисления в десятичную систему счисления
Для перевода числа из любой системы счисления в десятичную достаточно пронумеровать его разряды, начиная с нулевого (разряд слева от десятичной точки) аналогично примерам 1 или 2. Найдём сумму произведений цифр числа на основание системы счисления в степени позиции этой цифры:
Перевод чисел из десятичной системы счисления в другую систему счисления
Для перевода чисел из десятичной системы счисления в другую систему счисления целую и дробную части числа нужно переводить отдельно.
Перевод целой части числа из десятичной системы счисления в другую систему счисления
Целая часть переводится из десятичной системы счисления в другую систему счисления с помощью последовательного деления целой части числа на основание системы счисления до получения целого остатка, меньшего основания системы счисления. Результатом перевода будет являться запись из остатков, начиная с последнего.
Рассмотрим перевод правильных десятичных дробей в различные системы счисления.
Перевод дробной части числа из десятичной системы счисления в другую систему счисления
Напомним, правильной десятичной дробью называется вещественное число с нулевой целой частью. Чтобы перевести такое число в систему счисления с основанием N нужно последовательно умножать число на N до тех пор, пока дробная часть не обнулится или же не будет получено требуемое количество разрядов. Если при умножении получается число с целой частью, отличное от нуля, то целая часть дальше не учитывается, так как последовательно заносится в результат.
Перевод чисел из недесятичной системы счисления в десятичную.
Перевод осуществляется по следующему правилу:
· исходное число запишем в развернутой форме, используя цифры десятичной системы.
· сложим развернутую запись числа, используя правила десятичной системы счисления.
1100102 представить в десятичной форме. on_load_lecture()
Здесь в числе 6 цифр, где p = 2, a5 = 1, a4 = 1, a3 = 0, a2 =0, a1 = 1, a0 = 0, поэтому
1100102 = 1*2 5 + 1*2 4 + 0*2 3 + 0*2 2 + 1*2 1 + 0*2 0 =
= 1*32 + 1*16 + 0*8 + 0*4 + 1*2 + 0*1 =
4618 представить в десятичной форме.
4618 = 4*8 2 + 6*8 1 +1*2 0 =
Арифметические действия.
При работе на ЭВМ программисту приходится работать в различных системах счисления (Табл.2.1). Поэтому рассмотрим правила арифметических действий для указанных выше систем счисления.
Сложение.
Таблица 2.1.Числав некоторых системах счисления
Действие | Результат добавления 1 в системах счисления: | |
Двоичная | Шестнадцате-ричная | Десятичная |
0+0 | ||
0+1 | ||
0+1+1 | ||
0+1+1+1 | ||
0+1+1+1+1 | ||
0+1+1+1+1+1 | ||
0+1+1+1+1+1+1 | ||
0+1+1+1+1+1+1+1 | ||
0+1+1+1+1+1+1+1+1 | ||
0+1+1+1+1+1+1+1+1+1 | ||
0+1+1+1+1+1+1+1+1+1+1 | A | |
0+1+1+1+1+1+1+1+1+1+1+1 | B | |
0+1+1+1+1+1+1+1+1+1+1+1+1 | C | |
0+1+1+1+1+1+1+1+1+1+1+1+1+1 | D | |
0+1+1+1+1+1+1+1+1+1+1+1+1+1+1 | E | |
0+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1 | F | |
0+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1 |
Вспомним, как складываются два числа в десятичной системе приемом «в столбик», предположим для чисел 56 и 49.
|
1. Складываем цифры младших разрядов (единицы), т.е. 6 и 9. Получаем 15.
2. Цифру 5 пишем в колонку для единиц, т.е. под цифрами 6 и 9, а 1 переносим в колонку слева для десятков.
15
3. Теперь в колонке для десятков складываются: 5, 4 и перенесенная 1. Получаем 10.
4. 0 пишем в колонку десятков, а 1 переносим влево в колонку сотен.
1
49
Теперь применим те же правила для шестнадцатеричных чисел, предположим для чисел 5B и A9
A9
1. Складываем цифры младших разрядов, т.е. B и 9. Получаем 1416.
2. Цифру 4 пишем в колонку под цифрами B и 9, а 1 переносим в колонку слева.
14
3. Теперь складываем цифры в колонке слева, т.е.: 5, A и перенесенная 1. Получаем 1016.
4. 0 пишем в колонку под цифрами 5 и A, а 1 переносим в колонку слева.
1
A9
5B16 = 5*16 + 11 = 80 + 11 = 91
A916 = 10*16 + 9 = 160 + 9 = 169
10416 = 1*16 2 + 0*16 + 4 = 256 + 0 + 4 = 260
Теперь применим те же правила для двоичных чисел, предположим для чисел 1102 и 1112
1112
1. Складываем цифры младших разрядов, т.е. 0 и 1. Получаем 1 (0 + 1 = 1).
2. Цифру 1 пишем в колонку под цифрами 0 и 1.
1112
3. Складываем цифры в колонке левее, т.е. 1 и 1. Получаем 102.
4. 0 пишем в колонку под цифрами 1 и 1, а 1 переносим в колонку слева.
112
6. Теперь складываем цифры в колонке слева, т.е.: 1, 1 и перенесенная 1. Получаем 112. (1 + 1 + 1 = 112).
7. Цифру 1 пишем в колонку под цифрами 1 и 1, а 1 переносим в колонку слева.
1
1112
1102 = 1*2 2 + 1*2 + 0 = 4 + 2 + 0 = 6
1112 = 1*2 2 + 1*2 + 1 = 4 + 2 + 1 = 7
11012 = 1*2 3 + 1*2 2 + 0*2 + 1 = 8 + 4 + 0 + 1 = 13
Вычитание.
Давайте вспомним еще раз, как располагаются разряды в позиционных системах счисления.
· При переносе цифры вправо в соседний разряд, к цифре справа добавляется 0 (Рис. 2.3.).
Вычтем из 56 число 49 в десятичной системе приемом «в столбик».
|
1. Рассмотрим цифры младших разрядов (единицы), т.е. 6 и 9.
2. Если из большей цифры вычитаем меньшую цифру, то пишем разность в младшем разряде (единицы).
3. Если из меньшей цифры вычитаем большую цифру, то из соседнего слева разряда вычитаем 1 и переносим ее вправо, приписывая к ней справа 0. Полученное число 10 прибавляем к меньшей цифре и делаем вычитание. У нас 6 меньше 9 (6
(1) 10
– – –
(5)B (5)B (5)B
5B
C916 = 12*16 + 9 = 192 + 9 = 201
5B16 = 5*16 + 11 = 80 + 11 = 91
6E16 = 6*16 + 14 = 96 + 14 = 110
Теперь применим те же правила для двоичных чисел, предположим для чисел 11012 и 1112
(1) 10 (1) 10
11012 (110)1 (11)01 (10)01 (1)001 0001
– – – – –
1112 (11)1 (1)11 (1)11 111 111
11012 = 1*2 3 + 1*2 2 + 0*2 + 1 = 8 + 4 + 0 + 1 = 13
1112 = 1*2 2 + 1*2 + 1 = 4 + 2 + 1 = 7
1102 = 1*2 2 + 1*2 + 0 = 4 + 2 + 0 = 6