NexxDigital - компьютеры и операционные системы

В двоичной системе счисления используются всего две цифры 0 и 1. Другими словами, двойка является основанием двоичной системы счисления. (Аналогично у десятичной системы основание 10.)

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

В десятичной системе счисления мы располагаем десятью знаками-цифрами (от 0 до 9). Когда счет достигает 9, то вводится новый разряд (десятки), а единицы обнуляются и счет начинается снова. После 19 разряд десятков увеличивается на 1, а единицы снова обнуляются. И так далее. Когда десятки доходят до 9, то потом появляется третий разряд – сотни.

Двоичная система счисления аналогична десятичной за исключением того, что в формировании числа участвуют всего лишь две знака-цифры: 0 и 1. Как только разряд достигает своего предела (т.е. единицы), появляется новый разряд, а старый обнуляется.

Попробуем считать в двоичной системе:
0 – это ноль
1 – это один (и это предел разряда)
10 – это два
11 – это три (и это снова предел)
100 – это четыре
101 – пять
110 – шесть
111 – семь и т.д.

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

Не трудно заметить, что в двоичной системе счисления длины чисел с увеличением значения растут быстрыми темпами. Как определить, что значит вот это: 10001001? Непривычный к такой форме записи чисел человеческий мозг обычно не может понять сколько это. Неплохо бы уметь переводить двоичные числа в десятичные.

В десятичной системе счисления любое число можно представить в форме суммы единиц, десяток, сотен и т.д. Например:

1476 = 1000 + 400 + 70 + 6

1476 = 1 * 10 3 + 4 * 10 2 + 7 * 10 1 + 6 * 10 0

Посмотрите на эту запись внимательно. Здесь цифры 1, 4, 7 и 6 - это набор цифр из которых состоит число 1476. Все эти цифры поочередно умножаются на десять возведенную в ту или иную степень. Десять – это основание десятичной системы счисления. Степень, в которую возводится десятка – это разряд цифры за минусом единицы.

Аналогично можно разложить и любое двоичное число. Только основание здесь будет 2:

10001001 = 1*2 7 + 0*2 6 + 0*2 5 + 0*2 4 + 1*2 3 + 0*2 2 + 0*2 1 + 1*2 0

1*2 7 + 0*2 6 + 0*2 5 + 0*2 4 + 1*2 3 + 0*2 2 + 0*2 1 + 1*2 0 = 128 + 0 + 0 + 0 + 8 + 0 + 0 + 1 = 137

Т.е. число 10001001 по основанию 2 равно числу 137 по основанию 10. Записать это можно так:

10001001 2 = 137 10

Почему двоичная система счисления так распространена?

Дело в том, что двоичная система счисления – это язык вычислительной техники. Каждая цифра должна быть как-то представлена на физическом носителе. Если это десятичная система, то придется создать такое устройство, которое может быть в десяти состояниях. Это сложно. Проще изготовить физический элемент, который может быть лишь в двух состояниях (например, есть ток или нет тока). Это одна из основных причин, почему двоичной системе счисления уделяется столько внимания.

Перевод десятичного числа в двоичное

Может потребоваться перевести десятичное число в двоичное. Один из способов – это деление на два и формирование двоичного числа из остатков. Например, нужно получить из числа 77 его двоичную запись.

Чтобы быстро переводить числа из десятичной системы счисления в двоичную, нужно хорошо знать числа "2 в степени". Например, 2 10 =1024 и т.д. Это позволит решать некоторые примеры на перевод буквально за секунды. Одной из таких задач является задача A1 из демо ЕГЭ 2012 года . Можно, конечно, долго и нудно делить число на "2". Но лучше решать по-другому, экономя драгоценное время на экзамене.

Метод очень простой. Суть его такая: если число, которое нужно перевести из десятичной системы, равно числу "2 в степени", то это число в двоичной системе содержит количество нулей, равное степени. Впереди этих нулей добавляем "1".

  • Переведем число 2 из десятичной системы. 2=2 1 . Поэтому в двоичной системе число содержит 1 нуль . Впереди ставим "1" и получаем 10 2 .
  • Переведем 4 из десятичной системы. 4=2 2 . Поэтому в двоичной системе число содержит 2 нуля . Впереди ставим "1" и получаем 100 2.
  • Переведем 8 из десятичной системы. 8=2 3 . Поэтому в двоичной системе число содержит 3 нуля . Впереди ставим "1" и получаем 1000 2.


Аналогично и для других чисел "2 в степени".

Если число, которое нужно перевести, меньше числа "2 в степени" на 1, то в двоичной системе это число состоит только из единиц, количество которых равно степени.

  • Переведем 3 из десятичной системы. 3=2 2 -1. Поэтому в двоичной системе число содержит 2 единицы . Получаем 11 2.
  • Переведем 7 из десятичной системы. 7=2 3 -1. Поэтому в двоичной системе число содержит 3 единицы . Получаем 111 2.

На рисунке квадратиками обозначено двоичное представление числа, а слева розовым цветом-десятичное.


Аналогичен перевод и для других чисел "2 в степени-1".

Понятно, что перевод чисел от 0 до 8 можно сделать быстро или делением, или просто знать наизусть их представление в двоичной системе. Я привела эти примеры, чтобы Вы поняли принцип данного метода и использовали его для перевода более "внушительных чисел", например, для перевода чисел 127,128, 255, 256, 511, 512 и т.д.

Можно встретить такие задачи, когда нужно перевести число, не равное числу "2 в степени", но близкое к нему. Оно может быть больше или меньше числа "2 в степени". Разница между переводимым числом и числом "2 в степени" должна быть небольшая. Например, до 3. Представление чисел от 0 до 3 в двоичной системе надо просто знать без перевода.

Если число больше , то решаем так:

Переводим сначала число "2 в степени" в двоичную систему. А потом прибавляем к нему разницу между числом "2 в степени" и переводимым числом.

Например, переведем 19 из десятичной системы. Оно больше числа "2 в степени" на 3.

16=2 4 . 16 10 =10000 2 .

3 10 =11 2 .

19 10 =10000 2 +11 2 =10011 2 .

Если число меньше числа "2 в степени", то удобнее пользоваться числом "2 в степени-1". Решаем так:

Переводим сначала число "2 в степени-1" в двоичную систему. А потом вычитаем из него разницу между числом "2 в степени-1" и переводимым числом.

Например, переведем 29 из десятичной системы. Оно больше числа "2 в степени-1" на 2. 29=31-2.

31 10 =11111 2 .

2 10 =10 2 .

29 10 =11111 2 -10 2 =11101 2

Если разница между переводимым числом и числом "2 в степени" больше трех , то можно разбить число на составляющие, перевести каждую часть в двоичную систему и сложить.

Например, перевести число 528 из десятичной системы. 528=512+16. Переводим отдельно 512 и 16.
512=2 9 . 512 10 =1000000000 2 .
16=2 4 . 16 10 =10000 2 .
Теперь сложим столбиком:

Самые распространенные в современном мире методы расчетов - десятичный и двоичный. Они используются в совершенно разных областях, но оба одинаково важны. Нередко требуется и перевод из двоичной в десятичную систему или наоборот. Названия произошли от оснований, которые зависят от того, сколько знаков используется в записи чисел. В двоичной это только 0 и 1, а в десятичной - от 0 до 9. В других системах помимо цифр используются буквы, другие значки и даже иероглифы, но практически все они уже давно устарели. Поскольку даже другие разновидности числовых систем гораздо менее распространены, то что речь пойдет прежде всего о двух уже упомянутых. На самом деле удивительно, как все это можно было придумать. Поговорим на эту тему отдельно.

История возникновения

Даже сейчас, когда, казалось бы, весь мир считает одинаково, встречаются самые разные системы. В самых отдаленных уголках земного шара довольствуются лишь понятиями "один", "два" и "много", или чем-то подобным. Что уж говорить о тех временах, когда людям было гораздо сложнее контактировать друг с другом, так что использовалось огромное количество самых разных видов записей и методов подсчетов. Человечество далеко не сразу пришло к существующей системе, и это отражается в том, что час разделен на 60 минут, а не на 100 отрезков времени, что было бы, кажется, логичней. И в то же время люди чаще считают десятками, чем дюжинами. Все это отголоски того времени, когда инструментами для количественной оценки чего-либо служили собственные пальцы или, например, фаланги некоторых из них. Так возникли десятичная и двенадцатиричная системы. Но как же возникла двоичная? Очень просто и логично. Дело в том, что, например, у диодов есть всего два положения: он может быть либо включен, либо выключен. Первое состояние, таким образом, можно записать как 1, а второе - как 0. Однако это не означает, что двоичная система возникла одновременно с электронными приборами. Ее использовали гораздо раньше, например, Лейбниц считал ее крайне удобной, изящной и простой. Даже удивительно, что эта система счисления не стала в итоге основной.

Сферы применения

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

Отличия и особенности

Когда речь идет о системах счисления, обязательно необходимо как-то разграничить их. Ведь отличить 11 или 100 в разных методах записи просто так совершенно невозможно. Именно поэтому используется указатель ниже и правее самого числа. Так что, увидев запись 11 2 или 100 10 , можно понять, о чем идет речь. Обе системы являются позиционными, то есть от места той или иной цифры зависит ее значение. О разрядах десятичной системы рассказывают в школе: там есть единицы, десятки, сотни, тысячи и т. д. В двоичной все то же самое. Но в связи с тем, что ее основание - 2 - меньше 10, то разрядов ей нужно гораздо больше, то есть запись чисел получается гораздо длиннее. Кстати, в двоичной, как и во всех других системах, кроме десятичной, как самой распространенной, чтение происходит особым образом. Если основание 10 дает возможность прочесть 101 как "сто один", то для 2 это будет "один ноль один".

Возвращаясь к вопросу разрядов, необходимо повторить, что в связи с гораздо меньшим основанием требуется больше разрядов. Так, например, 8 10 - это 1000 2 . Разница очевидна - один разряд и четыре. Еще одно серьезное отличие - в двоичной системе не существует отрицательных чисел. Разумеется, записать его можно, но храниться и зашифровываться оно все равно будет иначе. Итак, как же производится перевод из двоичной системы счисления в десятичную и наоборот?

Алгоритм

Достаточно редко, но все-таки иногда приходится осуществлять переход от одного основания к другому. Иными словами, возникает потребность в том, чтобы произвести перевод из двоичной системы в десятичную и наоборот. Современные компьютеры делают это легко и быстро, даже если записи очень длинные и объемные. Люди тоже могут это делать, хоть и гораздо медленнее и менее эффективно. Провести и одну, и вторую операцию не так уж и сложно, но требуются знания, как это делать, внимательность и практика. Для того чтобы перейти от основания 2 к 10, необходимо проделать следующие шаги:

2) последовательно умножить значение на 2, возведенное в степень, равную номеру позиции;

3) сложить полученные результаты.

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

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

1) разделить изначальное число на 2 и записать остаток (1 или 0);

2) повторять шаг 1 до момента, когда останется только 0 или 1;

3) записать полученные значения по порядку.

Существуют и другие способы провести перевод из двоичной в десятичную систему счисления и наоборот. Но они не имеют никакого преимущества перед описанным алгоритмом, не являются более эффективными. Зато они требуют навыков осуществления арифметических действий в двоичной системе, что доступно очень немногим.

Дроби

К счастью или сожалению, но факт остается фактом - в двоичной системе используются не только целые числа. Перевод дробей - не слишком сложная, но зачастую трудоемкая для человека задача. Если изначальное число представлено в десятичной системе, то после преобразования целого числа все, что после запятой, нужно уже не делить, а умножать на 2, записывая целые части. Если же производится перевод из двоичной в десятичную систему, то все еще проще. В этом случае, когда начнется преобразование части после запятой, степень, в которую возводится 2, будет последовательно равняться -1, -2, -3 и т. д. Лучше всего будет рассмотреть это на практике.

Пример

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

  • перевод 1000101 2 в десятичную систему: 1х2 6 + 0х2 5 + 0х2 4 + 0х2 3 + 1х2 2 + 0х2 1 + 1х2 0 = 64+0+0+0+4+1 = 69 10 ;
  • с помощью метода Горнера. 00110111010 2 = 0х2+0=0х2+0=0х2+1=1х2+1=3х2+0=6х2+1=13х2+1=27х2+1=55х2+0=110х2+1=221х2+0=442 10 ;
  • 1110,01 2: 1х2 3 + 1х2 2 + 1х2 1 + 0х2 0 + 0х2 -1 + 1х2 -2 = 8+4+2+0,25 = 14,25 10 ;
  • из десятичной системы: 15 10 = 15/2=7(1)/2=3(1)/2=1(1)/2=0(1)= 1111 2 ;

Как не запутаться?

Даже на примере лишь двоичной и десятичной систем становится ясно, что смена основания вручную - нетривиальная задача. А ведь есть еще и другие: шестнадцатиричная, восьмеричная, шестидесятиричная и т. д. При ручном переводе из одной системы счисления в другую крайне необходима внимательность. Не запутаться действительно сложно, особенно если запись длинная. Кроме того, нельзя забывать, что разряды считаются с 0, а не 1, то есть количество цифр всегда будет на одну больше. Разумеется, нужно внимательно подсчитывать число разрядов и не допускать ошибок в арифметических действиях и, конечно, не пропускать шаги в алгоритме. В конечном итоге, существуют способы осуществлять переход между основаниями программными методами. Но здесь проще самостоятельно написать скрипт, чем искать его на просторах всемирной сети. В любом случае, навыки ручного перевода, как и теоретическое представление о том, как это делается, тоже должны быть.

В одном из наших материалов мы рассмотрели определение . Оно имеет самый короткий алфавит. Только две цифры: 0 и 1. Примеры алфавитов позиционных систем счисления приведены в таблице.

Позиционные системы счисления

Название системы

Основание

Алфавит

Двоичная

Троичная

Четверичная

Пятеричная

Восьмеричная

Десятичная

0,1,2,3,4,5,6,7,8,9

Двенадцатеричная

0,1,2,3,4,5,6,7,8,9,А,В

Шестнадцатеричная

0,1,2,3,4,5,6,7,8,9,А,В,С,D,E,F

Тридцатишестиричная

0,1,2,3,4,5,6,7,8,9,А,В,С,D,E,F,G, H,I,J,K,L,M,N,O,P,R,S,T,U,V,X,Y,Z


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

Таблица перевода десятичных чисел от 0 до 20 в двоичную систему счисления.

десятичное

число

двоичное число

десятичное

число

двоичное число


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


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

Способ №1.

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


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


В нашем случае это 9, т.к. 2 9 =512 , а 2 10 =1024 , что больше нашего начального числа. Таким образом, мы получили число разрядов результата. Оно равно 9+1=10. Значит, результат будет иметь вид 1ххххххххх, где вместо х может стоять 1 или 0.


Найдем вторую цифру результата. Возведем двойку в степень 9 и вычтем из исходного числа: 637-2 9 =125. Затем сравниваем с числом 2 8 =256 . Так как 125 меньше 256, то девятый разряд будет 0, т.е. результат уже примет вид 10хххххххх.


2 7 =128 > 125 , значит и восьмой разряд будет нулём.


2 6 =64 , то седьмой разряд равен 1. 125-64=61 Таким образом, мы получили четыре старших разряда и число примет вид 10011ххххх.


2 5 =32 и видим, что 32 < 61, значит шестой разряд равен 1 (результат 100111хххх), остаток 61-32=29.


2 4 =16 < 29 - пятый разряд 1 => 1001111ххх. Остаток 29-16=13.


2 3 =8 < 13 => 10011111хх. 13-8=5


2 2 =4 < 5 => 10011111хх, остаток 5-4=1.


2 1 =2 > 1 => 100111110х, остаток 2-1=1.


2 0 =1 => 1001111101.


Это и будет конечный результат.

Способ №2.

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

  1. Разделим a n−1 a n−2 ...a 1 a 0 =a n−1 ⋅2 n−1 +a n−2 ⋅2 n−2 +...+a 0 ⋅2 0 на 2.
  2. Частное будет равно an−1 ⋅2n−2+...+a1 , а остаток будет равен
  3. Полученное частное опять разделим на 2, остаток от деления будет равен a1.
  4. Если продолжить этот процесс деления, то на n-м шаге получим набор цифр: a 0 ,a 1 ,a 2 ,...,a n−1 , которые входят в двоичное представление исходного числа и совпадают с остатками при его последовательном делении на 2.
  5. Таким образом, для перевода целого десятичного числа в двоичную систему счисления нужно последовательно выполнять деление данного числа и получаемых целых частных на 2 до тех пор, пока не получим частное, которое будет равно нулю.

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


Переведём десятичное число 11 в двоичную систему счисления. Рассмотренную выше последовательность действий (алгоритм перевода) можно изобразить так:


Получили 11 10 =1011 2 .

Пример:

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



363 10 =101101011 2



Разберем одну из важнейших тем по информатике - . В школьной программе она раскрывается довольно "скромно", скорее всего, из-за недостатка отведенных на нее часов. Знания по этой теме, особенно на перевод систем счисления , являются обязательным условием для успешной сдачи ЕГЭ и поступления в ВУЗы на соответствующие факультеты. Ниже подробным образом рассмотрены такие понятия, как позиционные и непозиционные системы счисления , даны примеры этих систем счисления, представлены правила перевода целых десятичных чисел, правильных десятичных дробей и смешанных десятичных чисел в любую другую систему счисления, перевода чисел из любой системы счисления в десятичную, перевода из восьмеричной и шестнадцатиричной систем счисления в двоичную систему счисления . На экзаменах в большом количестве встречаются задачи по данной теме. Умение их решать – одно из требований к абитуриентам. Скоро: По каждой теме раздела, помимо подробного теоретического материала, будут представлены практически все возможные варианты задач для самостоятельного изучения. Кроме того, у вас появится возможность совершенно бесплатно скачать с файлообменника уже готовые подробные решения к данным задачам, иллюстрирующие различные способы получения верного ответа.

епозиционные системы счисления.

Непозиционные системы счисления - системы счисления, в которых количественное значение цифры не зависит от ее местоположения в числе.

К непозиционным системам счисления относится, например, римская, где вместо цифр - латинские буквы.

I 1 (один)
V 5 (пять)
X 10 (десять)
L 50 (пятьдесят)
C 100 (сто)
D 500 (пятьсот)
M 1000 (тысяча)

Здесь буква V обозначает 5 независимо от ее местоположения. Однако стоит упомянуть о том, что хотя римская система счисления и является классическим примером непозиционной системы счисления, не является полностью непозиционной, т.к. меньшая цифра, стоящая перед большей, вычитается из нее:

IL 49 (50-1=49)
VI 6 (5+1=6)
XXI 21 (10+10+1=21)
MI 1001 (1000+1=1001)

озиционные системы счисления.

Позиционные системы счисления - системы счисления, в которых количественное значение цифры зависит от ее местоположения в числе.

Например, если говорить о десятичной системе счисления, то в числе 700 цифра 7 означает "семь сотен", но эта же цифра в числе 71 означает "семь десятков", а в числе 7020 - "семь тысяч".

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

    Например:
  • Двоичная - позиционная система счисления с основанием 2.
  • Четверичная - позиционная система счисления с основанием 4.
  • Пятиричная - позиционная система счисления с основанием 5.
  • Восьмеричная - позиционная система счисления с основанием 8.
  • Шестнадцатиричная - позиционная система счисления с основанием 16.

Чтобы успешно решать задачи по теме "Системы счисления", ученик должен знать наизусть соответствие двоичных, десятичных, восьмеричных и шестнадцатиричных чисел до 16 10:

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
16 10000 20 10

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

К числу прибавляется единица и получается новое число. Если разряд единиц становится равен основанию системы счисления, мы увеличиваем число десятков на 1 и т.д.

Этот "переход единицы" как раз и пугает большинство учеников. На самом же деле все довольно просто. Переход происходит, если разряд единиц становится равен основанию системы счисления , мы увеличиваем число десятков на 1. Многие, помня старую добрую десятичную систему моментально путаются в разряда и в этом переходе, ведь десятичный и, например, двоичный десятки - разные вещи.

Отсюда у находчивых учеников появляются "свои методики" (на удивление... работающие) при заполнении, например, таблиц истинности, первые столбцы (значения переменных) которых, фактически, заполняются двоичными числами в порядке возрастания.

Для примера разберем получение чисел в восьмеричной системе : К первому числу (0) прибавляем 1, получаем 1. Затем к 1 прибавляем 1, получаем 2 и т.д. до 7. Если мы прибавим к 7 единицу, получим число равное основанию системы счисления, т.е. 8. Тогда нужно увеличить на единицу разряд десятков (получаем восьмеричный десяток - 10). Далее, очевидно, идут числа 11, 12, 13, 14, 15, 16, 17, 20, ..., 27, 30, ..., 77, 100, 101...

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

1 Перевод целых десятичных чисел в любую другую систему счисления.

Число нужно разделить на новое основание системы счисления . Первый остаток от деления - это и есть первая младшая цифра нового числа. Если частное от деления меньше или равно новому основанию, то его (частное) нужно снова разделить на новое основание. Деление нужно продолжать, пока не получим частное меньше нового основания. Это есть старшая цифра нового числа (нужно помнить, что, например, в шестнадцатиричной системе после 9 идут буквы, т.е. если в остатке получили 11, нужно записать его как B).

Пример ("деление уголком"): Переведем число 173 10 в восьмеричную систему счисления.


Таким образом, 173 10 =255 8

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

Число нужно умножить на новое основание системы счисления. Цифра, перешедшая в целую часть - старшая цифра дробной части нового числа. для получения следующей цифры дробную часть получившегося произведения опять нужно умножать на новое основание системы счисления, пока не произойдет переход в целую часть. Умножение продолжаем, пока дробная часть не станет равна нулю, либо пока не дойдем до указанной в задаче точности ("... вычислить с точностью, например, двух знаков после запятой").

Пример: Переведем число 0,65625 10 в восьмеричную систему счисления.



Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter
ПОДЕЛИТЬСЯ:
NexxDigital - компьютеры и операционные системы