Вычислительная техника и программирование/Занятие 2
Системы счисления
[править]Теория
[править]Общий способ обозначения и наименования натуральных чисел называется системой счисления. Система обозначения натуральных чисел, в основе которой лежат десять цифр, называется десятичной.Число 10 - основанием такой системы счисления.
В записи по десятичной системе счисления первая, вторая, третья и т.д. цифры, считая справа налево, называются единицами первого, второго, третьего и так далее разрядов.
Так, в числе 84735 имеется:
5 единиц первого разряда, 3 единицы второго разряда, 7 единиц третьего, 4 единицы четвертого, 8 единиц пятого разряда.
Десять единиц какого-либо разряда составляют одну единицу следующего, высшего разряда.
За основание системы счисления можно взять любое число, например 8. Тогда получится восьмеричная система счисления. Для изображения любого натурального числа по восьмеричной системе достаточно восьми цифр:
0, 1, 2, 3, 4, 5, 6, 7.
Здесь восемь единиц какого-либо разряда составляют одну единицу следующего, высшего разряда. Причем, понятие разряда числа здесь такое же как в десятичной системе.
Если число 1971 записано в десятичной системе, то в восьмеричной системе оно запишется как 3663.
Любое натуральное число в той или иной системе счисления можно
изобразить с помощью некоторого количества (равного основанию системы
счисления) цифр.
Но цифры имеют разное значение, в зависимости от места, которое они занимают в изображении числа.
Такой принцип представления натурального числа называется позиционным.
Если за основание системы выбрать число k, то в записи числа N по k-й системе k единиц одного разряда составляют единицу следующего, высшего разряда.
Как правило число N в системе с основанием k записывается в следующем виде: B0B1...Bm-1Bm ,
где каждое из чисел B0B1...Bm-1Bm меньше k.
Таким образом, если запись числа N по цифрам имеет вид B0B1...Bm-1Bm , то его значение вычисляется следующим образом:
N= B0km+B1km-1+...+Bm-1k+Bm
где каждое из чисел B0, B1, B2, ..., Bm меньше k.
Например, число 2746 имеет 2 тысячи, 7 сотен, 4 десятка и 6 единиц. Поэтому его можно записать так:
2746=2*103+ 7*102+ 4*10 + 6
Для того, чтобы перевести число, записанное по системе с основанием k, в десятичную систему необходимо все цифры B0,B1,...,Bm-1,Bm и основание k числа N записать в десятичной системе, а затем также в десятичной системе произвести вычисление. Такую операцию называют подстановкой.
Например, переведем число 36638 в десятичную систему (индекс 8 означает, что число 3663 представлено в восьмеричной системе):
36638==3*83 +6*82 +6*81 +3*80 =1971 10
Здесь основание системы счисления меньше 10 (8<10), поэтому цифры числа N и основание k при подстановке в формулу не изменили своего вида. То есть использовались цифры из того же набора 0, 1, ..., 9.
Задание 1
[править]Перевести заданное число, записанное в восьмеричной системе, в десятичную систему, сделать подробную запись в тетраде (на странице обсуждения).
- вариант - 5174 (восьмеричное)
- вариант - 3714 (восьмеричное)
- вариант - 3776 (восьмеричное)
- вариант - 7623 (восьмеричное)
- вариант - 4531 (восьмеричное)
- вариант - 2525 (восьмеричное)
- вариант - 5252 (восьмеричное)
- вариант - 7456 (восьмеричное)
- вариант - 1266 (восьмеричное)
- вариант - 7007 (восьмеричное)
- вариант - 60065 (восьмеричное)
- вариант - 65535 (восьмеричное)
- вариант - 66643 (восьмеричное)
- вариант - 24033 (восьмеричное)
- вариант - 61412 (восьмеричное)
- вариант - 75522 (восьмеричное)
- вариант - 23773 (восьмеричное)
- вариант - 44770 (восьмеричное)
- вариант - 23127 (восьмеричное)
- вариант - 5432 (восьмеричное)
Теория
[править]Если основание системы k больше 10, то k и каждую из цифр числа N следует перед подстановкой перевести в десятичную систему. Так в шестнадцатеричной системе помимо "обычных" десятичных цифр 0,1,2,3,4,5,6,7,8,9 используются ещё шесть цифр A,B,C,D,E,F, которые в десятичной системе равны соответст- венно 10,11,12,13,14,15, а основание k этой системы в десятичной системе соответствует 16.
В качестве примера рассмотрим перевод шестнадцатеричного числа 8DC3 16</small десятичную систему.
8DC3 16 = 8*16 3 +13*16 2 +12*16 1 +3*16 0 = 36291 10
Задание 2
[править]Перевести заданное число, записанное в шестнадцатеричной системе, в десятичную систему сделать подробную запись в тетраде (на странице обсуждения)..
- вариант - A235 (шестнадцатеричное)
- вариант - B4CD (шестнадцатеричное)
- вариант - 6975 (шестнадцатеричное)
- вариант - C409 (шестнадцатеричное)
- вариант - 1234 (шестнадцатеричное)
- вариант - FFCE (шестнадцатеричное)
- вариант - 785 (шестнадцатеричное)
- вариант - 263 (шестнадцатеричное)
- вариант - 125 (шестнадцатеричное)
- вариант - 2A4 (шестнадцатеричное)
- вариант - 3BF (шестнадцатеричное)
- вариант - EEE9 (шестнадцатеричное)
- вариант - 2645 (шестнадцатеричное)
- вариант - 5678 (шестнадцатеричное)
- вариант - ABC0 (шестнадцатеричное)
- вариант - 563C (шестнадцатеричное)
- вариант - 70C9 (шестнадцатеричное)
- вариант - 1125 (шестнадцатеричное)
- вариант - C8B9 (шестнадцатеричное)
- вариант - 4457 (шестнадцатеричное)
Теория
[править]С помощью приведенного выше алгоритма можно переводить числа из двоичной системы в десятичную.
В качестве примера рассмотрим перевод двоичного числа 1011 2 в десятичную систему.
1011 2 = 1*2 3+0*2 2 +1*2 1 +1*2 0 = 11 10
Задание 3
[править]Переведите заданное число, записанное в двоичной системе, в десятичную сделать подробную запись в тетраде (на странице обсуждения)...
- вариант - 11001
- вариант - 10101
- вариант - 10011
- вариант - 100101
- вариант - 1111
- вариант - 11100
- вариант - 11101
- вариант - 11110
- вариант - 11111
- вариант - 100000
- вариант - 10110
- вариант - 10111
- вариант - 10110
- вариант - 10001
- вариант - 10000
- вариант - 10010
- вариант - 100001
- вариант - 100010
- вариант - 100011
- вариант - 100100
--Сергей1852 (обсуждение) 10:40, 14 сентября 2012 (UTC)=== Теория ===
В области человеческой деятельности, связанной с производством и применением ЭВМ находили и находят применение следующие системы счисления:
а) двоичная
б) восьмеричная
в) шестнадцатеричная
г) двоично-восьмеричная
д) двоично-десятичная.
Поэтому нужно уметь переводить числа из одной системы в другую. Со способом подстановки мы уже познакомились.
По этому способу из числа в произвольной k-ичной системе можно было получить то же число в десятичной системе, при этом очень существенным является то обстоятельство, что все действия при подстановке производились в десятичной системе.
Способ подстановки годится и для перехода от любой системы с основанием k к системе с основанием t, если только все действия производить в системе с основанием t. При вычислениях, производимых в десятичной системе (или в системе с основанием t), для перехода от десятичной системы (или от системы с основанием t) к системе с основанием k способ подстановки непригоден.
Начнём рассмотрение способа перехода от десятичной системы к системе с основанием k с примера. Переведём в восьмеричную систему целое число 843 10.
Разделив данное число на 8, найдём в частном 105 и в остатке 3.
84310 = 105*8+3
Это означает, что наше число, кроме некоторого количества восьмёрок, содержит ещё три единицы, т.е. последняя цифра восьмеричной записи данного числа есть 3.
Для определения следующей (справа налево) цифры разделим на 8 получен- ное частное 105. Найдём, что частное равно 13, а остаток 1, то есть
105=13*8+1 . Т.о. получаем 84310 =(13*8+1)*8+3=13*8 2 +1*8 + 3
Иначе говоря, остаток 1 даст нам вторую справа цифру восьмеричного представления.
Наконец, разделив новое частное 13 на 8, получим 13=1*8+5 Результат деления можно представить в виде:
843=105*8+3=(13*8+1)*8+3=((1*8+5)*8+1)*8+3=1*8 3 +5*8 2 +1*8 1 +3*8 0
Это значит, что число 843 10 имеет в восьмеричной системе вид 1513 8.
Естественно, что этот приём является общим. Действительно, пусть целое
число M записано в некоторой системе счисления с основанием t и его
нужно перевести в новую систему счисления с основанием n.
Разделив M на n, получим: M=b0*n+a0
(деление производится в системе счисления с основанием t). Разделив далее b0 на n, найдём, что b0 =b1*n+a1, откуда
M=(b1*n+a1)*n+a0.
Этот процесс будем продолжать до тех пор, пока последнее частное, которое будет обозначено ai не станет меньше n.
Тогда получим
M=a&<i&=*n&>i&=+a&<i-1&=*n&>i-1&=+...+a&<2&=*n&>2&=+a&<1&=*n&>1&=+a&<0&=*n&>0&=
т.е. цифрами, представляющими число M в системе с основанием n, будут остатки, получающиеся при последовательном делении M на n, но записанные в обратном порядке.
Этот приём перевода целых чисел называется алгоритмом последовательного деления.
Деление в этом алгоритме производится в первоначальной системе счисления с основанием t. Если n<t, то делитель, а значит, и все остатки однозначны, и мы сразу получаем нужные цифры. Если же n>t, то в системе с основанием t делитель и, быть может, некоторые остатки будут содержать больше одной цифры. В новой системе счисления их следует заменить новыми цифрами, которые в системе с основанием t отсутствовали.
Чтобы последнее замечание стало понятнее, рассмотрим пример.
Переведём число 711310 в шестнадцатеричную систему. Новое основание в десятичной системе равно 16. Деление производим в десятичной системе:
Учитывая что 1210 = C16 и 1110 = B16 получим:
711310=1BC916
Т.о., если действия над числами производятся в системе с основанием
n, то для перевода числа из системы с основанием s в систему с основанием n используется алгоритм подстановки. Обратный перевод
производится при помощи алгоритма последовательного деления.
При переходе от одной системы счисления к другой оказываются полезными смешанные формы записи чисел. Если представить число в какой-либо системе счисления, а затем каждую цифру этого числа записать в другой системе, то мы получим смешанную форму записи числа. Практически используются двоично- восьмеричная и двоично-десятичная системы.
В двоично-десятичной системе число представляется в десятичной форме, а затем каждая десятичная цифра записывается в двоичной системе. При этом различные десятичные цифры требуют для своего двоичного написания различного числа двоичных разрядов от одного (для нуля и единицы) до четырёх (для восьми и девяти). Чтобы не применять никаких разделительных знаков, для двоичного изображения десятичной цифры всегда выделяется четыре двоичных разряда, которые называются тетрадой.
Например, число 8709 в двоично-десятичной форме будет иметь вид 1000 0111 0000 1001. В этом примере тетрады записаны с промежутками между ними. На самом деле все цифры могут быть поставлены рядом и надо помнить, что каждая группа состоит из четырёх разрядов. Например, двоично-десятичная запись 00101001011000000101 означает десятичное число 29605.
Из возможных шестнадцати различных тетрад 0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000, 1001, 1010, 1011, 1100,1101, 1110, 1111 в двоично-десятичной системе используются только первые десять, остальные тетрады не означают никакой десятичной цифры и поэтому не имеют смысла в двоично-десятичной системе.
Как известно, физические элементы в ЭВМ имеют два устойчивых состояния и поэтому не могут быть использованы для непосредственного изображения чисел в системе, требующей более двух цифр. Вместе с тем, исходные данные для вычислений, естественно, представляются в десятичной системе. Для записи десятичных чисел в ЭВМ и служит двоично-десятичная система.
Аналогично двоично-десятичной, двоично-восьмеричная форма записи чисел состоит в том, что цифра восьмеричного числа записывается в двоичном виде. Так как наибольшая цифра в восьмеричной системе есть 7, то для изображения любой восьмеричной цифры достаточно трёх разрядов. Такая группа из трёх разрядов, отведённая для изображения восьмеричной цифры, называется триадой.
Так, например, восьмеричное число 6127345 запишется в двоично-восьмеричной системе семью триадами: 110 001 010 111 011 100 101.
В отличие от тетрад, используемых в двоично-десятичной системе, в двоично-восьмеричной системе все возможные триады используются. Это преимущество двоично-восьмеричной системы. Другим - и самым важным - преимуществом является то, что двоично-восьмеричная запись числа совпадает с его двоичной записью.
Это утверждение можно доказать в общем виде.
Для определённости ограничимся рассмотрением двоичного числа с шестью разрядами. Пусть оно имеет вид:
N=b 5 b 4 b 3 b 2 b 1 b 0.
В двоичной системе это число равно:
N=b5*25+b4*24+b3*23+b2*22+b1*21+b0*20
Представим это число в виде
N=(b5*22+b4*21+b3*20)*23+(b2*22+b1*21+b0*20) = a1*81+a0*80,
где
a1 = b5*22+b4*21+b3*20,
a0 = b2*21+b1*21+b0*20.
Из представления N=a1*81 + a0*80 следует, что восьмеричными цифрами числа N являются a1 и a0.
Вместе с тем равенство a1 = b5*22+b4*21+b3*20
показывает, что если записать восьмеричную цифру a1 в виде триады двоичных цифр, то этими двоичными цифрами будут b5, b4, b3. Поскольку аналогичное равенство имеет место и для a0, то таким образом доказано, что двоичная запись числа совпадает.
Задание 4
[править]Заданное десятичное число переведите в двоичную, восьмеричную,двоично-восьмеричную,шестнадцатеричную и двоично-десятичную системы. Ответы записать через какой либо разделитель (запятую, пробел, точку и т.п) в тетраде или страниц обсуждения.
- вариант - 222
- вариант - 375
- вариант - 800
- вариант - 846
- вариант - 1015
- вариант - 2800
- вариант - 3520
- вариант - 7477
- вариант - 8400
- вариант - 6531
- вариант - 1417
- вариант - 1920
- вариант - 5249
- вариант - 4327
- вариант - 615
- вариант - 4875
- вариант - 2003
- вариант - 2999
- вариант - 1000
- вариант - 4096