| § 1.1. Системы счисления
Ключевые слова:
Система счисления
цифра
алфавит
позиционная система счисления
основание
развёрнутая форма записи числа
свёрнутая форма записи числа
двоичная система счисления
восьмеричная система счисления
шестнадцатеричная система счисления
Система счисления - это знаковая система, в которой приняты определённые правила записи чисел . Знаки, с помощью которых записываются числа (рис. 1.1), называются цифрами , а их совокупность - алфавитом системы счисления .
Рис. 1.1. Знаки, используемые для записи чисел в различных системах счисления
В любой системе счисления цифры служат для обозначения чисел, называемых узловыми; остальные числа (алгоритмические) получаются в результате каких-либо операций из узловых чисел.
Пример 1 . У вавилонян узловыми являлись числа 1, 10, 60; в римской системе счисления узловые числа - это 1, 5, 10, 50, 100, 500 и 1000, обозначаемые соответственно I, V, X, L, С, D, М.
Системы счисления различаются выбором узловых чисел и способами образования алгоритмических чисел. Можно выделить следующие виды систем счисления:
1) унарная система;
2) непозиционные системы;
3) позиционные системы.
Простейшая и самая древняя система - так называемая унарная система счисления . В ней для записи любых чисел используется всего один символ - палочка, узелок, зарубка, камушек. Длина записи числа при таком кодировании прямо связана с его величиной, что роднит этот способ с геометрическим представлением чисел в виде отрезков. Именно унарная система лежит в фундаменте арифметики, и именно она до сих пор вводит первоклассников в мир счёта. Унарную систему ещё называют системой бирок.
Система счисления называется непозиционной, если количественный эквивалент (количественное значение) цифры в числе не зависит от её положения в записи числа .
В большинстве непозиционных систем счисления числа образуются путём сложения узловых чисел.
Пример 2 . В древнеегипетской системе счисления числа 1, 2, 3, 4, 10, 13, 40 обозначались соответственно следующим образом:
Те же числа в римской системе счисления обозначаются так: I, II, III, IV, X, XIII, XL. Здесь алгоритмические числа получаются путём сложения и вычитания узловых чисел с учётом следующего правила: каждый меньший знак, поставленный справа от большего, прибавляется к его значению, а каждый меньший знак, поставленный слева от большего, вычитается из него.
Система счисления называется позиционной, если количественный эквивалент цифры зависит от её положения (позиции) в записи числа . Основание позиционной системы счисления равно количеству цифр, составляющих её алфавит.
Десятичная система записи чисел , которой мы привыкли пользоваться в повседневной жизни, с которой мы знакомы с детства, в которой производим все наши вычисления, - пример позиционной системы счисления . Алфавит десятичной системы составляют цифры О, 1, 2, 3, 4, 5, 6, 7, 8, 9. Алгоритмические числа образуются в ней следующим образом: значения цифр умножаются на «веса» соответствующих разрядов, и все полученные значения складываются. Это отчётливо прослеживается в числительных русского языка, например: «три-ста пять-десят семь ».
Основанием позиционной системы счисления может служить любое натуральное число q > 1 . Алфавитом произвольной позиционной системы счисления с основанием q служат числа О, 1, ..., q-1, каждое из которых может быть записано с помощью одного уникального символа; младшей цифрой всегда является О.
Основные достоинства любой позиционной системы счисления - простота выполнения арифметических операций и ограниченное количество символов, необходимых для записи любых чисел.
Здесь:
А - число;
q i - «вес» i-то разряда.
Запись числа по формуле (1) называется развёрнутой формой записи. Свёрнутой формой записи числа называется его представление в виде 1
Пример 3 . Рассмотрим десятичное число 14351,1. Его свёрнутая форма записи настолько привычна, что мы не замечаем, как в уме переходим к развёрнутой записи, умножая цифры числа на «веса» разрядов и складывая полученные произведения:
Двоичной системой счисления называется позиционная система счисления с основанием 2. Для записи чисел в двоичной системе счисления используются только две цифры: 0 и 1.
На основании формулы (1) для целых двоичных чисел можно записать:
Например:
Такая форма записи «подсказывает» правило перевода натуральных двоичных чисел в десятичную систему счисления: необходимо вычислить сумму степеней двойки, соответствующих единицам в свёрнутой форме записи двоичного числа.
Получим правило перевода целых десятичных чисел в двоичную систему счисления из формулы (1").
Разделим на 2. Частное будет равно , а остаток будет равен a 0 .
Полученное частное опять разделим на 2, остаток от деления будет равен a 1 .
Если продолжить этот процесс деления, то на n-m шаге получим набор цифр:
которые входят в двоичное представление исходного числа и совпадают с остатками при его последовательном делении на 2.
Таким образом, для перевода целого десятичного числа в двоичную систему счисления нужно последовательно выполнять деление данного числа и получаемых целых частных на 2 до тех пор, пока не получим частное, равное нулю. Исходное число в двоичной системе счисления составляется последовательной записью полученных остатков, начиная с последнего.
Пример 4. Переведём десятичное число 11 в двоичную систему счисления. Рассмотренную выше последовательность действий (алгоритм перевода) можно изобразить так:
Выписывая остатки от деления в направлении, указанном стрелкой, получим: 11 10 = 1011 2 .
Пример 5 . Если десятичное число достаточно большое, то более удобен следующий способ записи рассмотренного выше алгоритма:
363 10 = 101101011 2
Восьмеричной системой счисления называется позиционная система счисления с основанием 8 . Для записи чисел в восьмеричной системе счисления используются цифры: 0, 1, 2, 3, 4, 5, 6, 7.
На основании формулы (1) для целого восьмеричного числа можно записать:
Например: 1063 8 = 1 8 3 + 0 8 2 + 6 8 1 + 3 8 0 = 563 10 .
Таким образом, для перевода целого восьмеричного числа в десятичную систему счисления следует перейти к его развёрнутой записи и вычислить значение получившегося выражения.
Для перевода целого десятичного числа в восьмеричную систему счисления следует последовательно выполнять деление данного числа и получаемых целых частных на 8 до тех пор, пока не получим частное, равное нулю. Исходное число в новой системе счисления составляется последовательной записью полученных остатков, начиная с последнего.
Пример 6 . Переведём десятичное число 103 в восьмеричную систему счисления.
103 10 = 147 8
Основание: q = 16.
Алфавит: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, А, В, С, D, Е, F .
Здесь только десять цифр из шестнадцати имеют общепринятое обозначение 0,..., 9. Для записи цифр с десятичными количественными эквивалентами 10, 11, 12, 13, 14, 15 обычно используются первые пять букв латинского алфавита.
Таким образом, запись 3AF 16 означает:
Пример 7 . Переведём десятичное число 154 в шестнадцатеричную систему счисления.
154 10 = 9А 16
Для перевода целого десятичного числа в систему счисления с основанием g следует:
1) последовательно выполнять деление данного числа и получаемых целых частных на основание новой системы счисления до тех пор, пока не получим частное, равное нулю;
2) полученные остатки, являющиеся цифрами числа в новой системе счисления, привести в соответствие с алфавитом новой системы счисления;
3) составить число в новой системе счисления, записывая его, начиная с последнего полученного остатка.
Представим таблицу соответствия десятичных, двоичных, восьмеричных и шестнадцатеричных чисел от О до 20 10 .
В Единой коллекции цифровых образовательных ресурсов (http://sc.edu.ru/) размещена интерактивная анимация «Преобразование десятичного числа в другую систему счисления» (135050). С её помощью можно понаблюдать за переводом произвольного целого числа от 0 до 512 в позиционную систему счисления, основание которой не превышает 16.
В размещённой там же виртуальной лаборатории «Цифровые весы» (135009) вы сможете освоить ещё один способ перевода целых десятичных чисел в другие системы счисления - метод разностей.
Арифметика двоичной системы счисления основывается на ис-пользовании следующих таблиц сложения и умножения:
Пример 8 . Таблица двоичного сложения предельно проста. Так как 1 + 1 = 10, то 0 остаётся в младшем разряде, а 1 переносится в старший разряд.
Пример 9 . Операция умножения двоичных чисел выполняется по обычной схеме, применяемой в десятичной системе счисления, с последовательным умножением множимого на очередную цифру множителя.
Таким образом, в двоичной системе счисления умножение сводится к сдвигам множимого и сложениям.
В компьютерной технике используется двоичная система счисления, обеспечивающая ряд преимуществ по сравнению с другими системами счисления:
Двоичные числа представляются в компьютере с помощью достаточно простых технических элементов с двумя устойчивыми состояниями;
представление информации посредством только двух состояний надёжно и помехоустойчиво;
двоичная арифметика наиболее проста;
существует математический аппарат, обеспечивающий логические преобразования двоичных данных.
Обмен информацией между компьютерными устройствами осуществляется путём передачи двоичных кодов. Пользоваться такими кодами из-за их большой длины и зрительной однородности человеку неудобно. Поэтому специалисты (программисты, инженеры) на некоторых этапах разработки, создания, настройки вычислительных систем заменяют двоичные коды на эквивалентные им величины в восьмеричной или шестнадцатеричной системах счисления. В результате длина исходного слова сокращается в три, четыре раза соответственно. Это делает информацию более удобной для рассмотрения и анализа.
С помощью ресурса «Интерактивный задачник, раздел “Системы счисления”» (128659), размещённого в Единой коллекции цифровых образовательных ресурсов, можно проверить, насколько прочно вы усвоили изученный в этом параграфе материал.
Система счисления - это знаковая система, в которой приняты определённые правила записи чисел. Знаки, с помощью которых записываются числа, называются цифрами, а их совокупность - алфавитом системы счисления.
Система счисления называется позиционной, если количествен-ный эквивалент цифры зависит от её положения (позиции) в записи числа. Основание позиционной системы счисления равно количеству цифр, составляющих её алфавит.
Основанием позиционной системы счисления может служить любое натуральное число q > 1.
В позиционной системе счисления с основанием q любое число может быть представлено в виде:
Здесь:
А - число;
q - основание системы счисления;
a i - цифры, принадлежащие алфавиту данной системы счисления;
n - количество целых разрядов числа;
m - количество дробных разрядов числа;
q i - «вес» i-то разряда.
1. Ознакомьтесь с материалами презентации к параграфу, содержащейся в электронном приложении к учебнику. Что вы можете сказать о формах представления информации в презентации и в учебнике? Какими слайдами вы могли бы дополнить презентацию?
2. Найдите дополнительную информацию об унарной, позиционных и непозиционных системах счисления. Чем они различаются? Приведите примеры.
3. Цифры каких систем счисления приведены на рис. 1.1?
4. Объясните, почему позиционные системы счисления с основаниями 5, 10, 12 и 20 называют системами счисления анатомического происхождения.
5. Как от свёрнутой формы записи десятичного числа перейти к его развёрнутой форме?
6. Запишите в развёрнутой форме числа:
а) 143,511 10 ;
б) 143511 8 ;
в) 143511 16 ;
г) 1435,11 8
7. Вычислите десятичные эквиваленты следующих чисел:
а) 172 8 ;
б) 2ЕА 16 ;
в) 101010 2 ;
г) 10,1 2 ;
д) 243 6 .
8. Укажите, какое из чисел 110011 2 , 111 4 , 35 8 и 1В 16 является:
а) наибольшим;
б) наименьшим.
9. Какое минимальное основание имеет система счисления, если в ней записаны числа 123, 222, 111, 241? Определите десятичный эквивалент данных чисел в найденной системе счисления.
10. Верны ли следующие равенства?
а) 33 4 = 21 7 ;
б) 33 8 = 21 4 .
11. Найдите основание х системы счисления, если:
а) 14 x = 9 10 ;
б) 2002 x . = 130 10 .
12. Переведите целые числа из десятичной системы счисления в двоичную:
а) 89;
б) 600;
в) 2010.
13. Переведите целые числа из десятичной системы счисления в восьмеричную:
а) 513;
б) 600;
в) 2010.
14. Переведите целые числа из десятичной системы счисления в шестнадцатеричную:
а) 513;
б) 600;
в) 2010.
15. Заполните таблицу, в каждой строке которой одно и то же число должно быть записано в системах счисления с основаниями 2, 8, 10 и 16.
Изучая кодировки, я понял, что недостаточно хорошо понимаю системы счислений. Тем не менее, часто использовал 2-, 8-, 10-, 16-ю системы, переводил одну в другую, но делалось все на “автомате”. Прочитав множество публикаций, я был удивлен отсутствием единой, написанной простым языком, статьи по столь базовому материалу. Именно поэтому решил написать свою, в которой постарался доступно и по порядку изложить основы систем счисления.
Что под этим подразумевается? Например, вы видите перед собой несколько деревьев. Ваша задача - их посчитать. Для этого можно - загибать пальцы, делать зарубки на камне (одно дерево - один палец\зарубка) или сопоставить 10 деревьям какой-нибудь предмет, например, камень, а единичному экземпляру - палочку и выкладывать их на землю по мере подсчета. В первом случае число представляется, как строка из загнутых пальцев или зарубок, во втором - композиция камней и палочек, где слева - камни, а справа - палочки
Системы счисления подразделяются на позиционные и непозиционные, а позиционные, в свою очередь, - на однородные и смешанные.
Непозиционная
- самая древняя, в ней каждая цифра числа имеет величину, не зависящую от её позиции (разряда). То есть, если у вас 5 черточек - то число тоже равно 5, поскольку каждой черточке, независимо от её места в строке, соответствует всего 1 один предмет.
Позиционная система - значение каждой цифры зависит от её позиции (разряда) в числе. Например, привычная для нас 10-я система счисления - позиционная. Рассмотрим число 453. Цифра 4 обозначает количество сотен и соответствует числу 400, 5 - кол-во десяток и аналогично значению 50, а 3 - единиц и значению 3. Как видим - чем больше разряд - тем значение выше. Итоговое число можно представить, как сумму 400+50+3=453.
Однородная система - для всех разрядов (позиций) числа набор допустимых символов (цифр) одинаков. В качестве примера возьмем упоминавшуюся ранее 10-ю систему. При записи числа в однородной 10-й системе вы можете использовать в каждом разряде исключительно одну цифру от 0 до 9, таким образом, допускается число 450 (1-й разряд - 0, 2-й - 5, 3-й - 4), а 4F5 - нет, поскольку символ F не входит в набор цифр от 0 до 9.
Смешанная система - в каждом разряде (позиции) числа набор допустимых символов (цифр) может отличаться от наборов других разрядов. Яркий пример - система измерения времени. В разряде секунд и минут возможно 60 различных символов (от «00» до «59»), в разряде часов – 24 разных символа (от «00» до «23»), в разряде суток – 365 и т. д.
Для удобства, люди стали группировать палочки по 3, 5, 10 штук. При этом, каждой группе соответствовал определенный знак или предмет. Изначально для подсчета использовались пальцы рук, поэтому первые знаки появились для групп из 5 и 10 штук (единиц). Все это позволило создать более удобные системы записи чисел.
Почему она называется десятичной? Как писалось выше - люди стали группировать символы. В Египте - выбрали группировку по 10, оставив без изменений цифру “1”. В данном случае, число 10 называется основанием десятичной системы счисления, а каждый символ - представление числа 10 в какой-то степени.
Числа в древнеегипетской системе счисления записывались, как комбинация этих
символов, каждый из которых повторялся не более девяти раз. Итоговое значение равнялось сумме элементов числа. Стоит отметить, что такой способ получения значения свойственен каждой непозиционной системе счисления. Примером может служить число 345:
Шестидесятеричная вавилонская система - первая система счисления, частично основанная на позиционном принципе. Данная система счисления используется и сегодня, например, при определении времени - час состоит из 60 минут, а минута из 60 секунд.
Методы определения значения числа:
Для примера возьмем число 503. Если бы это число было записано в непозиционной системе, то его значение равнялось 5+0+3 = 8. Но у нас - позиционная система и значит каждую цифру числа необходимо умножить на основание системы, в данном случае число “10”, возведенное в степень, равную номеру разряда. Получается, значение равно 5*10 2 + 0*10 1 + 3*10 0 = 500+0+3 = 503. Чтобы избежать путаницы при одновременной работе с несколькими системами счисления основание указывается в качестве нижнего индекса. Таким образом, 503 = 503 10 .
Помимо десятичной системы, отдельного внимания заслуживают 2-, 8-, 16-ая системы.
Двоичная позиционная система счисления имеет основание 2 и использует для записи числа 2 символа (цифры): 0 и 1. В каждом разряде допустима только одна цифра - либо 0, либо 1.
Примером может служить число 101. Оно аналогично числу 5 в десятичной системе счисления. Для того, чтобы перевести из 2-й в 10-ю необходимо умножить каждую цифру двоичного числа на основание “2”, возведенное в степень, равную разряду. Таким образом, число 101 2 = 1*2 2 + 0*2 1 + 1*2 0 = 4+0+1 = 5 10 .
Хорошо, для машин 2-я система счисления удобнее, но мы ведь часто видим, используем на компьютере числа в 10-й системе. Как же тогда машина определяет какую цифру вводит пользователь? Как переводит число из одной системы в другую, ведь в её распоряжении всего 2 символа - 0 и 1?
Чтобы компьютер мог работать с двоичными числами (кодами), необходимо чтобы они где-то хранились. Для хранения каждой отдельной цифры применяется триггер, представляющий собой электронную схему. Он может находится в 2-х состояниях, одно из которых соответствует нулю, другое - единице. Для запоминания отдельного числа используется регистр - группа триггеров, число которых соответствует количеству разрядов в двоичном числе. А совокупность регистров - это оперативная память. Число, содержащееся в регистре - машинное слово. Арифметические и логические операции со словами осуществляет арифметико-логическое устройство (АЛУ). Для упрощения доступа к регистрам их нумеруют. Номер называется адресом регистра. Например, если необходимо сложить 2 числа - достаточно указать номера ячеек (регистров), в которых они находятся, а не сами числа. Адреса записываются в 8- и 16-ричной системах (о них будет рассказано ниже), поскольку переход от них к двоичной системе и обратно осуществляется достаточно просто. Для перевода из 2-й в 8-ю число необходимо разбить на группы по 3 разряда справа налево, а для перехода к 16-ой - по 4. Если в крайней левой группе цифр не достает разрядов, то они заполняются слева нулями, которые называются ведущими. В качестве примера возьмем число 101100 2 . В восьмеричной - это 101 100 = 54 8 , а в шестнадцатеричной - 0010 1100 = 2С 16 . Отлично, но почему на экране мы видим десятичные числа и буквы? При нажатии на клавишу в компьютер передаётся определённая последовательность электрических импульсов, причём каждому символу соответствует своя последовательность электрических импульсов (нулей и единиц). Программа драйвер клавиатуры и экрана обращается к кодовой таблице символов (например, Unicode, позволяющая закодировать 65536 символов), определяет какому символу соответствует полученный код и отображает его на экране. Таким образом, тексты и числа хранятся в памяти компьютера в двоичном коде, а программным способом преобразуются в изображения на экране.
Пример восьмеричного числа: 254. Для перевода в 10-ю систему необходимо каждый разряд исходного числа умножить на 8 n , где n - это номер разряда. Получается, что 254 8 = 2*8 2 + 5*8 1 + 4*8 0 = 128+40+4 = 172 10 .
В качестве примера возьмем число 4F5 16 . Для перевода в восьмеричную систему - сначала преобразуем шестнадцатеричное число в двоичное, а затем, разбив на группы по 3 разряда, в восьмеричное. Чтобы преобразовать число в 2-е необходимо каждую цифру представить в виде 4-х разрядного двоичного числа. 4F5 16 = (100 1111 101) 2 . Но в 1 и 3 группах не достает разряда, поэтому заполним каждый ведущими нулями: 0100 1111 0101. Теперь необходимо разделить полученное число на группы по 3 цифры справа налево: 0100 1111 0101 = 010 011 110 101. Переведем каждую двоичную группу в восьмеричную систему, умножив каждый разряд на 2 n , где n - номер разряда: (0*2 2 +1*2 1 +0*2 0) (0*2 2 +1*2 1 +1*2 0) (1*2 2 +1*2 1 +0*2 0) (1*2 2 +0*2 1 +1*2 0) = 2365 8 .
Помимо рассмотренных позиционных систем счисления, существуют и другие, например:
1) Троичная
2) Четверичная
3) Двенадцатеричная
Позиционные системы подразделяются на однородные и смешанные.
Опираясь на теорему, можно сформулировать правила перевода из P-й в Q-ю системы и наоборот:
Смешанными системами счисления также являются, например:
1) Факториальная
2) Фибоначчиева
Пример: 101 2 = 1*2 2 + 0*2 1 + 1*2 0 = 4+0+1 = 5 10
Записав все остатки снизу вверх, получаем итоговое число 17. Следовательно, 15 10 = 17 8 .
В качестве примера возьмем число 1001 2: 1001 2 = 001 001 = (0*2 2 + 0*2 1 + 1*2 0) (0*2 2 + 0*2 1 + 1*2 0) = (0+0+1) (0+0+1) = 11 8
Для перевода в шестнадцатеричную - разбиваем двоичное число на группы по 4 цифры справа налево, затем - аналогично преобразованию из 2-й в 8-ю.
Для примера рассмотрим число 45 8: 45 = (100) (101) = 100101 2
Перевод из 16-ой в 2-ю - преобразуем каждый разряд шестнадцатеричного числа в двоичное 4-х разрядное число делением на 2, недостающие крайние разряды заполняем ведущими нулями.
Преобразование дробной части любой системы счисления в десятичную
Преобразование осуществляется также, как и для целых частей, за исключением того, что цифры числа умножаются на основание в степени “-n”, где n начинается от 1.
Пример: 101,011 2 = (1*2 2 + 0*2 1 + 1*2 0), (0*2 -1 + 1*2 -2 + 1*2 -3) = (5), (0 + 0,25 + 0,125) = 5,375 10
Пример: 1001,01 2 = 001 001, 010 = (0*2 2 + 0*2 1 + 1*2 0) (0*2 2 + 0*2 1 + 1*2 0), (0*2 2 + 1*2 1 + 0*2 0) = (0+0+1) (0+0+1), (0+2+0) = 11,2 8
Для примера переведем 10,625 10 в двоичную систему:
0,625*2 = 1,25
0,250*2 = 0,5
0,5*2 = 1,0
Записав все остатки сверху вниз, получаем 10,625 10 = (1010), (101) = 1010,101 2
С помощю этого онлайн калькулятора можно перевести целые и дробные числа из одной системы счисления в другую. Дается подробное решение с пояснениями. Для перевода введите исходное число, задайте основание сисемы счисления исходного числа, задайте основание системы счисления, в которую нужно перевести число и нажмите на кнопку "Перевести". Теоретическую часть и численные примеры смотрите ниже.
Результат уже получен!
Существуют позиционные и не позиционные системы счисления. Арабская система счисления, которым мы пользуемся в повседневной жизни, является позиционной, а римская − нет. В позиционных системах счисления позиция числа однозначно определяет величину числа. Рассмотрим это на примере числа 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). Далее объединяя эти результаты получим.
Система счисления - это совокупность правил записи чисел посредством конечного набора символов (цифр).
Системы счисления бывают:
Примеры: унарная, римская, древнерусская и др.
p i = s i ,
Разряды числа нумеруются справа налево, причем младший разряд целой части (стоящий перед разделителем - запятой или точкой) имеет номер ноль. Разряды дробной части имеют отрицательные номера:
По определению веса разряда
p i = s i ,
где i - номер разряда, а s - основание системы счисления.
Тогда, обозначив цифры числа как a i , любое число, записанное в позиционной системе счисления, можем представить в виде:
x = a n s n + a n-1 s n-1 + ... + a 2 s 2 + a 1 s 1 + a 0 s 0 + a -1 s -1 + ...
Например, для системы счисления с основанием 4:
1302.2 4 = 1⋅4 3 + 3⋅4 2 + 0⋅4 1 + 2⋅4 0 + 2⋅4 -1
Выполнив вычисления, мы получим значение исходного числа, записанное в десятичной системе счисления (точнее, в той, в которой производим вычисления). В данном случае:
1302.2 4 = 1⋅4 3 + 3⋅4 2 + 0⋅4 1 + 2⋅4 0 + 2⋅4 -1 =
= 1⋅64 + 3⋅16 + 0⋅4 + 2⋅1 + 2⋅0,25 =
= 64 + 48 + 2 + 0,5 = 114,5
Таким образом, для перевода числа из любой системы счисления в десятичную следует:
Вспомним пример перевода из системы счисления с основанием 4 в десятичную:
1302 4 = 1⋅4 3 + 3⋅4 2 + 0⋅4 1 + 2⋅4 0 = 114
Иначе это можно записать так:
114 = ((1 ⋅ 4 + 3) ⋅ 4 + 0) ⋅ 4 + 2 = 1302 4
Отсюда видно, что при делении 114 на 4 нацело в остатке должно остаться 2 - это младшая цифра при записи в четверичной системе. Частное же будет равно
(1 ⋅ 4 + 3) ⋅ 4 + 0
Деление его на 4 даст остаток - следующую цифру (0) и частное 1 ⋅ 4 + 3. Продолжая действия, получим аналогичным образом и оставшиеся цифры.
В общем случае для перевода целой части числа из десятичной системы счисления в систему с каким-либо другим основанием необходимо:
При работе с компьютерами широко применяют двоичную систему счисления (поскольку на ней основано представление информации в компьютере), а также восьмеричную и шестнадцатеричную, запись в которых более компактна и удобна для человека. С другой стороны, благодаря тому что 8 и 16 - степени 2, переход между записью в двоичной и одной из этих систем осуществляется без вычислений.
Достаточно заменить каждый разряд шестнадцатеричной записи четырьмя (16=24 ) разрядами двоичной (и наоборот) по таблице.
шестнадцатеричная -> двоичная | |||
A | 3 | 2 | E |
1010 | 0011 | 0010 | 1110 |
двоичная -> шестнадцатеричная | |||
(00)10 | 1010 | 0111 | 1101 |
2 | A | 7 | D |
Аналогично происходит и перевод между двоичной и восьмеричной системой, только разряд восьмеричной соответствует трем разрядам двоичной (8=2 3)
восьмеричная -> двоичная | ||||
5 | 3 | 2 | 1 | |
101 | 011 | 010 | 001 | |
двоичная -> восьмеричная | ||||
(0)10 | 101 | 001 | 111 | 101 |
2 | 5 | 1 | 7 | 5 |
Арифметические операции в позиционной системе с любым основанием производятся по одним и тем же правилам: сложение, вычитарние и умножение «в столбик», а деление - «уголком». Рассмотрим пример выполнения действий сложения и вычитания в двоичной, восьмеричной и шестнадцатеричной системах счисления.
Двоичная система:
(перенос) | ||||||||
1 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | |
1 | 0 | 0 | 1 | 1 | 1 | 0 | ||
|
||||||||
1 | 1 | 1 | 0 | 1 | 0 | 0 | 1 | |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | (номера разрядов) |
В нулевом разряде: 1 + 0 = 0
В первом разряде: 1 + 1 = 2. 2 переносится в старший (2-й) разряд, обращаясь в единицу переноса. В первом разряде остается 2 - 2 = 0.
Во втором разряде: 0 + 1 + 1 (перенос) = 2; Переносим в старший разряд,
Продолжая вычисления, получим:
10011011 2 + 1001110 2 = 11101001 2
Восьмеричная система:
| (перенос) | ||||
3 | 4 | 2 | 6 | 1 | |
| 4 | 4 | 3 | 5 | |
|
|||||
4 | 0 | 7 | 1 | 6 | |
4 | 3 | 2 | 1 | 0 | (номера разрядов) |
Выполняем вычисления аналогично двоичной системе, но в старший разряд переносим 8. Получаем:
34261 8 + 4435 8 = 40716 8
Шестнадцатеричная система:
| | (перенос) | |||
| A | 3 | 9 | 1 | |
| 8 | 5 | 3 | 4 | |
|
|||||
1 | 2 | 8 | C | 5 | |
4 | 3 | 2 | 1 | 0 | (номера разрядов) |
A391 16 + 8534 16 = 128C5 16
Двоичная система:
| | (перенос) | ||||||
1 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | |
1 | 0 | 0 | 1 | 1 | 1 | 0 | ||
|
||||||||
1 | 0 | 0 | 1 | 1 | 0 | 1 | ||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | (номера разрядов) |
В двоичной системе счисления используются всего две цифры 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 его двоичную запись:
77 / 2 = 38 (1 остаток)
38 / 2 = 19 (0 остаток)
19 / 2 = 9 (1 остаток)
9 / 2 = 4 (1 остаток)
4 / 2 = 2 (0 остаток)
2 / 2 = 1 (0 остаток)
1 / 2 = 0 (1 остаток)
Собираем остатки вместе, начиная с конца: 1001101. Это и есть число 77 в двоичном представлении. Проверим:
1001101 = 1*2 6 + 0*2 5 + 0*2 4 + 1*2 3 + 1*2 2 + 0*2 1 + 1*2 0 = 64 + 0 + 0 + 8 + 4 + 0 + 1 = 77