В повседневной жизни мы привыкли пользоваться десятичной системой счисления, знакомой нам еще со школьной скамьи. Однако помимо нее, существует и множество других систем. Как записывать цифры не в десятичной, а, например, в ?
Необходимость перевести десятичное число в двоичный вид выглядит пугающей только на первый взгляд. На самом деле это довольно просто - необязательно искать даже онлайн-сервисы для совершения операции.
Двоичное число 10011100, полученное в результате нехитрой операции, и будет двоичным выражением числа 156.
Ещё один пример, но уже на картинке
Обратный перевод - из двоичной в десятичную систему - может показаться чуть более сложным. Но если использовать простой метод удвоения, то и с этой задачей получится справиться за пару минут. Для примера возьмем все то же число, 156, но в двоичном виде - 10011100.
Когда в двоичной записи останется только одна последняя цифра, и прибавлять больше будет нечего, операция будет завершена. При помощи нехитрой проверки можно убедиться, что в ответе получится нужное десятичное число 156.
Результат уже получен!
Существуют позиционные и не позиционные системы счисления. Арабская система счисления, которым мы пользуемся в повседневной жизни, является позиционной, а римская − нет. В позиционных системах счисления позиция числа однозначно определяет величину числа. Рассмотрим это на примере числа 6372 в десятичном системе счисления. Пронумеруем это число справа налево начиная с нуля:
Тогда число 6372 можно представить в следующем виде:
6372=6000+300+70+2 =6·10 3 +3·10 2 +7·10 1 +2·10 0 .
Число 10 определяет систему счисления (в данном случае это 10). В качестве степеней взяты значения позиции данного числа.
Рассмотрим вещественное десятичное число 1287.923. Пронумеруем его начиная с нуля позиции числа от десятичной точки влево и вправо:
Тогда число 1287.923 можно представить в виде:
1287.923 =1000+200+80 +7+0.9+0.02+0.003 = 1·10 3 +2·10 2 +8·10 1 +7·10 0 +9·10 -1 +2·10 -2 +3·10 -3 .
В общем случае формулу можно представить в следующем виде:
Ц n ·s n +Ц n-1 ·s n-1 +...+Ц 1 ·s 1 +Ц 0 ·s 0 +Д -1 ·s -1 +Д -2 ·s -2 +...+Д -k ·s -k
где Ц n -целое число в позиции n , Д -k - дробное число в позиции (-k), s - система счисления.
Несколько слов о системах счисления.Число в десятичной системе счисления состоит из множества цифр {0,1,2,3,4,5,6,7,8,9}, в восьмеричной системе счисления - из множества цифр {0,1,2,3,4,5,6,7}, в двоичной системе счисления - из множества цифр {0,1}, в шестнадцатеричной системе счисления - из множества цифр {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}, где A,B,C,D,E,F соответствуют числам 10,11,12,13,14,15.В таблице Таб.1 представлены числа в разных системах счисления.
Таблица 1 | |||
---|---|---|---|
Система счисления | |||
10 | 2 | 8 | 16 |
0 | 0 | 0 | 0 |
1 | 1 | 1 | 1 |
2 | 10 | 2 | 2 |
3 | 11 | 3 | 3 |
4 | 100 | 4 | 4 |
5 | 101 | 5 | 5 |
6 | 110 | 6 | 6 |
7 | 111 | 7 | 7 |
8 | 1000 | 10 | 8 |
9 | 1001 | 11 | 9 |
10 | 1010 | 12 | A |
11 | 1011 | 13 | B |
12 | 1100 | 14 | C |
13 | 1101 | 15 | D |
14 | 1110 | 16 | E | 15 | 1111 | 17 | F |
Для перевода чисел с одной системы счисления в другую, проще всего сначала перевести число в десятичную систему счисления, а затем, из десятичной системы счисления перевести в требуемую систему счисления.
С помощью формулы (1) можно перевести числа из любой системы счисления в десятичную систему счисления.
Пример 1. Переводить число 1011101.001 из двоичной системы счисления (СС) в десятичную СС. Решение:
1 ·2 6 +0 ·2 5 +1 ·2 4 +1 ·2 3 +1 ·2 2 +0 ·2 1 +1 ·2 0 +0 ·2 -1 +0 ·2 -2 +1 ·2 -3 =64+16+8+4+1+1/8=93.125
Пример 2. Переводить число 1011101.001 из восьмеричной системы счисления (СС) в десятичную СС. Решение:
Пример 3 . Переводить число AB572.CDF из шестнадцатеричной системы счисления в десятичную СС. Решение:
Здесь A -заменен на 10, B - на 11, C - на 12, F - на 15.
Для перевода чисел из десятичной системы счисления в другую систему счисления нужно переводить отдельно целую часть числа и дробную часть числа.
Целую часть числа переводится из десятичной СС в другую систему счисления - последовательным делением целой части числа на основание системы счисления (для двоичной СС - на 2, для 8-ичной СС - на 8, для 16-ичной - на 16 и т.д.) до получения целого остатка, меньше, чем основание СС.
Пример 4 . Переведем число 159 из десятичной СС в двоичную СС:
159 | 2 | ||||||
158 | 79 | 2 | |||||
1 | 78 | 39 | 2 | ||||
1 | 38 | 19 | 2 | ||||
1 | 18 | 9 | 2 | ||||
1 | 8 | 4 | 2 | ||||
1 | 4 | 2 | 2 | ||||
0 | 2 | 1 | |||||
0 |
Как видно из Рис. 1, число 159 при делении на 2 дает частное 79 и остаток 1. Далее число 79 при делении на 2 дает частное 39 и остаток 1 и т.д. В результате построив число из остатков деления (справа налево) получим число в двоичной СС: 10011111 . Следовательно можно записать:
159 10 =10011111 2 .
Пример 5 . Переведем число 615 из десятичной СС в восьмеричную СС.
615 | 8 | ||
608 | 76 | 8 | |
7 | 72 | 9 | 8 |
4 | 8 | 1 | |
1 |
При приведении числа из десятичной СС в восьмеричную СС, нужно последовательно делить число на 8, пока не получится целый остаток меньшее, чем 8. В результате построив число из остатков деления (справа налево) получим число в восьмеричной СС: 1147 (см. Рис. 2). Следовательно можно записать:
615 10 =1147 8 .
Пример 6 . Переведем число 19673 из десятичной системы счисления в шестнадцатеричную СС.
19673 | 16 | ||
19664 | 1229 | 16 | |
9 | 1216 | 76 | 16 |
13 | 64 | 4 | |
12 |
Как видно из рисунка Рис.3, последовательным делением числа 19673 на 16 получили остатки 4, 12, 13, 9. В шестнадцатеричной системе счисления числе 12 соответствует С, числе 13 - D. Следовательно наше шестнадцатеричное число - это 4CD9.
Для перевода правильных десятичных дробей (вещественное число с нулевой целой частью) в систему счисления с основанием s необходимо данное число последовательно умножить на s до тех пор, пока в дробной части не получится чистый нуль, или же не получим требуемое количество разрядов. Если при умножении получится число с целой частью, отличное от нуля, то эту целую часть не учитывать (они последовательно зачисливаются в результат).
Рассмотрим вышеизложенное на примерах.
Пример 7 . Переведем число 0.214 из десятичной системы счисления в двоичную СС.
0.214 | ||
x | 2 | |
0 | 0.428 | |
x | 2 | |
0 | 0.856 | |
x | 2 | |
1 | 0.712 | |
x | 2 | |
1 | 0.424 | |
x | 2 | |
0 | 0.848 | |
x | 2 | |
1 | 0.696 | |
x | 2 | |
1 | 0.392 |
Как видно из Рис.4, число 0.214 последовательно умножается на 2. Если в результате умножения получится число с целой частью, отличное от нуля, то целая часть записывается отдельно (слева от числа), а число записывается с нулевой целой частью. Если же при умножении получиться число с нулевой целой частью, то слева от нее записывается нуль. Процесс умножения продолжается до тех пор, пока в дробной части не получится чистый нуль или же не получим требуемое количество разрядов. Записывая жирные числа (Рис.4) сверху вниз получим требуемое число в двоичной системе счисления: 0.0011011 .
Следовательно можно записать:
0.214 10 =0.0011011 2 .
Пример 8 . Переведем число 0.125 из десятичной системы счисления в двоичную СС.
0.125 | ||
x | 2 | |
0 | 0.25 | |
x | 2 | |
0 | 0.5 | |
x | 2 | |
1 | 0.0 |
Для приведения числа 0.125 из десятичной СС в двоичную, данное число последовательно умножается на 2. В третьем этапе получилось 0. Следовательно, получился следующий результат:
0.125 10 =0.001 2 .
Пример 9 . Переведем число 0.214 из десятичной системы счисления в шестнадцатеричную СС.
0.214 | ||
x | 16 | |
3 | 0.424 | |
x | 16 | |
6 | 0.784 | |
x | 16 | |
12 | 0.544 | |
x | 16 | |
8 | 0.704 | |
x | 16 | |
11 | 0.264 | |
x | 16 | |
4 | 0.224 |
Следуя примерам 4 и 5 получаем числа 3, 6, 12, 8, 11, 4. Но в шестнадцатеричной СС числам 12 и 11 соответствуют числа C и B. Следовательно имеем:
0.214 10 =0.36C8B4 16 .
Пример 10 . Переведем число 0.512 из десятичной системы счисления в восьмеричную СС.
0.512 | ||
x | 8 | |
4 | 0.096 | |
x | 8 | |
0 | 0.768 | |
x | 8 | |
6 | 0.144 | |
x | 8 | |
1 | 0.152 | |
x | 8 | |
1 | 0.216 | |
x | 8 | |
1 | 0.728 |
Получили:
0.512 10 =0.406111 8 .
Пример 11 . Переведем число 159.125 из десятичной системы счисления в двоичную СС. Для этого переведем отдельно целую часть числа (Пример 4) и дробную часть числа (Пример 8). Далее объединяя эти результаты получим:
159.125 10 =10011111.001 2 .
Пример 12 . Переведем число 19673.214 из десятичной системы счисления в шестнадцатеричную СС. Для этого переведем отдельно целую часть числа (Пример 6) и дробную часть числа (Пример 9). Далее объединяя эти результаты получим.
Калькулятор позволяет переводить целые и дробные числа из одной системы счисления в другую. Основание системы счисления не может быть меньше 2 и больше 36 (10 цифр и 26 латинских букв всё-таки). Длина чисел не должна превышать 30 символов. Для ввода дробных чисел используйте символ. или, . Чтобы перевести число из одной системы в другую, введите исходное число в первое поле, основание исходной системы счисления во второе и основание системы счисления, в которую нужно перевести число, в третье поле, после чего нажмите кнопку "Получить запись".
Исходное число записано в 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 -ой системе счисления .
Хочу получить запись числа в 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 -ой системе счисления .
Получить запись
Выполнено переводов: 1237177
Системы счисления делятся на два типа: позиционные и не позиционные . Мы пользуемся арабской системой, она является позиционной, а есть ещё римская − она как раз не позиционная. В позиционных системах положение цифры в числе однозначно определяет значение этого числа. Это легко понять, рассмотрев на примере какого-нибудь числа.
Пример 1 . Возьмём число 5921 в десятичной системе счисления. Пронумеруем число справа налево начиная с нуля:
Число 5921 можно записать в следующем виде: 5921 = 5000+900+20+1 = 5·10 3 +9·10 2 +2·10 1 +1·10 0 . Число 10 является характеристикой, определяющей систему счисления. В качестве степеней взяты значения позиции данного числа.
Пример 2 . Рассмотрим вещественное десятичное число 1234.567. Пронумеруем его начиная с нулевой позиции числа от десятичной точки влево и вправо:
Число 1234.567 можно записать в следующем виде: 1234.567 = 1000+200+30+4+0.5+0.06+0.007 = 1·10 3 +2·10 2 +3·10 1 +4·10 0 +5·10 -1 +6·10 -2 +7·10 -3 .
Наиболее простым способом перевода числа с одной системы счисления в другую, является перевод числа сначала в десятичную систему счисления, а затем, полученного результата в требуемую систему счисления.
Для перевода числа из любой системы счисления в десятичную достаточно пронумеровать его разряды, начиная с нулевого (разряд слева от десятичной точки) аналогично примерам 1 или 2. Найдём сумму произведений цифр числа на основание системы счисления в степени позиции этой цифры:
1.
Перевести число 1001101.1101 2 в десятичную систему счисления.
Решение:
10011.1101 2 = 1·2 4 +0·2 3 +0·2 2 +1·2 1 +1·2 0 +1·2 -1 +1·2 -2 +0·2 -3 +1·2 -4 = 16+2+1+0.5+0.25+0.0625 = 19.8125 10
Ответ:
10011.1101 2 = 19.8125 10
2.
Перевести число E8F.2D 16 в десятичную систему счисления.
Решение:
E8F.2D 16 = 14·16 2 +8·16 1 +15·16 0 +2·16 -1 +13·16 -2 = 3584+128+15+0.125+0.05078125 = 3727.17578125 10
Ответ:
E8F.2D 16 = 3727.17578125 10
Для перевода чисел из десятичной системы счисления в другую систему счисления целую и дробную части числа нужно переводить отдельно.
Целая часть переводится из десятичной системы счисления в другую систему счисления с помощью последовательного деления целой части числа на основание системы счисления до получения целого остатка, меньшего основания системы счисления. Результатом перевода будет являться запись из остатков, начиная с последнего.
3.
Перевести число 273 10 в восьмиричную систему счисления.
Решение:
273 / 8 = 34 и остаток 1, 34 / 8 = 4 и остаток 2, 4 меньше 8, поэтому вычисления завершены. Запись из остатков будет иметь следующий вид: 421
Проверка
: 4·8 2 +2·8 1 +1·8 0 = 256+16+1 = 273 = 273 , результат совпал. Значит перевод выполнен правильно.
Ответ:
273 10 = 421 8
Рассмотрим перевод правильных десятичных дробей в различные системы счисления.
Напомним, правильной десятичной дробью называется вещественное число с нулевой целой частью . Чтобы перевести такое число в систему счисления с основанием N нужно последовательно умножать число на N до тех пор, пока дробная часть не обнулится или же не будет получено требуемое количество разрядов. Если при умножении получается число с целой частью, отличное от нуля, то целая часть дальше не учитывается, так как последовательно заносится в результат.
4.
Перевести число 0.125 10 в двоичную систему счисления.
Решение:
0.125·2 = 0.25 (0 - целая часть, которая станет первой цифрой результата), 0.25·2 = 0.5 (0 - вторая цифра результата), 0.5·2 = 1.0 (1 - третья цифра результата, а так как дробная часть равна нулю, то перевод завершён).
Ответ:
0.125 10 = 0.001 2
Фраза о том, что все новое - это не что иное, как хорошо забытое старое, в полной мере относится к Оказывается, что еще в древнем Китае уже применяли нечто, напоминающее наши «единичка-нолик», правда не для арифметики, а для написания текстов книги Перемен. Ближе всех к пониманию разных систем счисления были инки: они использовали и десятичную, и двоичную системы, правда, последнюю только для текстовых и кодированных сообщений. Можно предположить, что уже тогда, 4 тыс. лет назад, инки знали, как делается перевод из двоичной в десятичную систему.
Современный вариант был предложен Лейбницем всего-то около 300 лет назад, а спустя еще полтора века оставил свое имя в памяти потомков работой по алгебре логики. Двоичная арифметика совместно с алгеброй логики стала фундаментом нынешней цифровой техники. А началось все в 1937 году, когда был предложен метод символического анализа релейных и переключательных схем. Эта работа Клода Шенона стала «мамой» для релейного компьютера, выполнявшего двоичное сложение уже в 1937 году. И, конечно же, одной из задач этого «прадедушки» современных компьютеров был перевод из двоичной в десятичную систему.
Прошло всего три года и очередная модель релейного «компьютера» посылала команды калькулятору используя телефонную линию и телетайп - ну прямо древний интернет в действии.
Что же представляют собой двоичная, десятичная, шестнадцатеричная и, вообще говоря, любая N-ичная система? Да ничего сложного. Возьмем трехзначное число в нашей любимой десятичной системе, оно изображается при помощи 10 знаков - от 0 до 9 с учетом их расположения. Определимся, что цифры этого числа находятся на позициях 0, 1, 2 (порядок идет от последней цифры к первой). На каждой из позиций может находиться любое из чисел системы, однако величина этого числа определяется не только его начертанием, но и местом положения. Например, для числа 365 (соответственно, позиция 0 - цифра 5, позиция 1 - цифра 6, и позиция 2 - цифра 3) значение числа на нулевой позиции - просто 5, на первой позиции - 6*10, и на второй - 3*10*10. Здесь любопытно, что начиная с первой позиции, число содержит значащую цифру (от 0 до 9) и основание системы в степени равной номеру позиции, т.е. можно записать, что 345 = 3*10*10 + 6*10 +3 = 3*102 + 6*101 + 5*100.
Еще пример:
260974 = 2*105 + 6*104 + 0*103 + 9*102 + 7*101 + 4*100.
Как видим, каждое позиционное место содержит значащее число из набора данной системы, и множитель из основания системы в степени равной позиции данного числа (разрядность числа это есть количество позиций, но на +1 больше).
С точки зрения представления числа, его двоичная форма озадачивает своей простотой - только 2 числа в системе - 0 и 1. Но красота математики в том, что даже в усеченном виде, как может показаться, двоичные числа такие же полноценные и равноправные, как и их более «рослые товарищи». Но как же их сравнивать, например, с десятичным числом? Как вариант, нужно сделать, и не торопясь, перевод из двоичной в десятичную. Задачу не назовешь трудной, но эта кропотливая работа требует внимания. Итак, начнем.
Исходя из сказанного выше о порядке представления чисел в любой системе, и имея в виду простейшую из них - двоичную, возьмем любую последовательность «единичек-ноликов». Назовем это число VO (по-русски ВО), и попробуем узнать, что это такое - перевод из двоичной в десятичную систему. Пусть это будет VO=11001010010. На первый взгляд, число как число. Посмотрим!
В первой строке расположим само число в растянутом виде, а вторую распишем как сумму каждой позиции в виде сомножителей - значащей цифры (здесь выбор небольшой - 0 или 1) и числа 2 в степени, равной позиционному числу в десятичной системе, мы же делаем перевод из двоичной в десятичную. Теперь во второй строке нужно просто выполнить вычисления. Для наглядности можно дописать еще и третью строку с промежуточными вычислениями.
VO = 1 1 0 0 1 0 1 0 0 1 0;
VO = 1*210 + 1*29 + 0*28 + 0*27 + 1*26 + 0*25 + 1*24 + 0*23 + 0*22 + 1*21 + 0*20;
VO=1*1024 + 1*512+0*256+0*128+ 1*64 + 0*32 + 1*16 + 0*8 +0*4 + 1*2 + 0*1.
Вычисляем «арифметику» в третьей строке и имеем то, что искали: VO = 1618. Ну и что же тут замечательного? А то, что это число - самое знаменитое из всех, которые известны людям: с ним связаны пропорции египетских пирамид, знаменитой Джоконды, музыкальных нот и человеческого тела, но… Но с небольшим уточнением - зная, что хорошего должно быть много, его величество случай дал нам это число в 1000 раз больше настоящего значения - 1,618. Наверное, чтобы всем досталось. А попутно перевод из двоичной системы в десятичную помог из бесконечного моря чисел «выловить» самое замечательное - его еще называют «золотая пропорция».
Сдающим ЕГЭ и не только…
Странно, что в школах на уроках информатики обычно показывают ученикам самый сложный и неудобный способ перевода чисел из одной системы в другую. Это способ заключается в последовательном делении исходного числа на основание и сборе остатков от деления в обратном порядке.
Например, нужно перевести число 810 10 в двоичную систему:
Результат записываем в обратном порядке снизу вверх. Получается 81010 = 11001010102
Если нужно переводить в двоичную систему довольно большие числа, то лестница делений приобретает размер многоэтажного дома. И как тут собрать все единички с нулями и ни одной не пропустить?
В программу ЕГЭ по информатике входят несколько задач, связанных с переводом чисел из одной системы в другую. Как правило, это преобразование между 8- и 16-ричными системами и двоичной. Это разделы А1, В11. Но есть и задачи с другими системами счисления, как например, в разделе B7.
Для начала напомним две таблицы, которые хорошо бы знать наизусть тем, кто выбирает информатику своей дальнейшей профессией.
Таблица степеней числа 2:
2 1 | 2 2 | 2 3 | 2 4 | 2 5 | 2 6 | 2 7 | 2 8 | 2 9 | 2 10 |
2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 |
Таблица двоичных чисел от 0 до 15 c 16-ричным представлением:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
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 |
Перевод целых чисел
Итак, начнем с перевода сразу в двоичную систему. Возьмём то же число 810 10 . Нам нужно разложить это число на слагаемые, равные степеням двойки.
Способ 1 : Расставить 1 по тем разрядам, какие получились показатели у слагаемых. В нашем примере это 9, 8, 5, 3 и 1. В остальных местах будут стоять нули. Итак, мы получили двоичное представление числа 810 10 = 1100101010 2 . Единицы стоят на 9-м, 8-м, 5-м, 3-м и 1-м местах, считая справа налево с нуля.
Способ 2 : Распишем слагаемые как степени двойки друг под другом, начиная с большего.
810 =
А теперь сложим эти ступеньки вместе, как складывают веер: 1100101010
.
Вот и всё. Попутно также просто решается задача «сколько единиц в двоичной записи числа 810?».
Ответ - столько, сколько слагаемых (степеней двойки) в таком его представлении. У 810 их 5.
Теперь пример попроще.
Переведём число 63 в 5-ричную систему счисления. Ближайшая к 63 степень числа 5 - это 25 (квадрат 5). Куб (125) будет уже много. То есть 63 лежит между квадратом 5 и кубом. Тогда подберем коэффициент для 5 2 . Это 2.
Получаем 63 10 = 50 + 13 = 50 + 10 + 3 = 2 * 5 2 + 2 * 5 + 3 = 223 5 .
Ну и, наконец, совсем лёгкие переводы между 8- и 16-ричными системами. Так как их основанием является степень двойки, то перевод делается автоматически, просто заменой цифр на их двоичное представление. Для 8-ричной системы каждая цифра заменяется тремя двоичными разрядами, а для 16-ричной четырьмя. При этом все ведущие нули обязательны, кроме самого старшего разряда.
Переведем в двоичную систему число 547 8 .
547 8 = | 101 | 100 | 111 |
5 | 4 | 7 |
Ещё одно, например 7D6A 16 .
7D6A 16 = | (0)111 | 1101 | 0110 | 1010 |
7 | D | 6 | A |
Переведем в 16-ричную систему число 7368. Сначала цифры запишем тройками, а потом поделим их на четверки с конца: 736 8 = 111 011 110 = 1 1101 1110 = 1DE 16 . Переведем в 8-ричную систему число C25 16 . Сначала цифры запишем четвёрками, а потом поделим их на тройки с конца: C25 16 = 1100 0010 0101 = 110 000 100 101 = 6045 8 . Теперь рассмотрим перевод обратно в десятичную. Он труда не представляет, главное не ошибиться в расчётах. Раскладываем число на многочлен со степенями основания и коэффициентами при них. Потом всё умножаем и складываем. E68 16 = 14 * 16 2 + 6 * 16 + 8 = 3688 . 732 8 = 7 * 8 2 + 3*8 + 2 = 474 .
Перевод отрицательных чисел
Здесь нужно учесть, что число будет представлено в дополнительном коде. Для перевода числа в дополнительный код нужно знать конечный размер числа, то есть во что мы хотим его вписать - в байт, в два байта, в четыре. Старший разряд числа означает знак. Если там 0, то число положительное, если 1, то отрицательное. Слева число дополняется знаковым разрядом. Беззнаковые (unsigned) числа мы не рассматриваем, они всегда положительные, а старший разряд в них используется как информационный.
Для перевода отрицательного числа в двоичный дополнительный код нужно перевести положительное число в двоичную систему, потом поменять нули на единицы и единицы на нули. Затем прибавить к результату 1.
Итак, переведем число -79 в двоичную систему. Число займёт у нас один байт.
Переводим 79 в двоичную систему, 79 = 1001111. Дополним слева нулями до размера байта, 8 разрядов, получаем 01001111. Меняем 1 на 0 и 0 на 1. Получаем 10110000. К результату прибавляем 1, получаем ответ 10110001 . Попутно отвечаем на вопрос ЕГЭ «сколько единиц в двоичном представлении числа -79?». Ответ - 4.
Прибавление 1 к инверсии числа позволяет устранить разницу между представлениями +0 = 00000000 и -0 = 11111111. В дополнительном коде они будут записаны одинаково 00000000.
Перевод дробных чисел
Дробные числа переводятся способом, обратным делению целых чисел на основание, который мы рассмотрели в самом начале. То есть при помощи последовательного умножения на новое основание с собиранием целых частей. Полученные при умножении целые части собираются, но не участвуют в следующих операциях. Умножаются только дробные. Если исходное число больше 1, то целая и дробная части переводятся отдельно, потом склеиваются.
Переведем число 0,6752 в двоичную систему.
0 | ,6752 |
*2 | |
1 | ,3504 |
*2 | |
0 | ,7008 |
*2 | |
1 | ,4016 |
*2 | |
0 | ,8032 |
*2 | |
1 | ,6064 |
*2 | |
1 | ,2128 |
Процесс можно продолжать долго, пока не получим все нули в дробной части или будет достигнута требуемая точность. Остановимся пока на 6-м знаке.
Получается 0,6752 = 0,101011 .
Если число было 5,6752, то в двоичном виде оно будет 101,101011 .