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

При переводе чисел из 2-ой в 16-ую систему счисления надо число разбить на триады (по четыре разряда) и записать каждую триаду соответствующей ей цифрой шестнадцатеричной системы счисления, недостающее число разрядов надо дополнить слева нулями.

Примеры:

1001 1110 2 = 9E 16

0010 0010 2 = 22 16

Двоичная СС Шестнадцатеричная СС
A
B
C
D
E
F

Перевод числа из 16-ой в 2-ую с. с.

Как видно из таблицы, каждая цифра в 16-ой с.с. соответствует четверке цифр в 2-ой с.с. Поэтому при переводе каждая цифра в 16-ричной записи числа заменяется соответствующей ей четверкой в 2-ой записи. Например:

251 8 =10 101 001 2 ,

11.Понятия и операции формальной логики.(таблица истинности)

Основные понятия и операции алгебры логики Формальной логикой принято называть античную логику, основанную Аристотелем. Это название происходит от основного принципа логики как науки, который гласит, что правильность рассуждения (умозаключения) определяется только его логической формой. Формами мышления являются: понятие, суждение, умоза­ключение. Понятие - форма мышления, отражающая существенные свойства предмета или класса однородных предметов. Харак­теризуется содержанием и объемом. Содержание понятия - те признаки предмета, которые позволяют отличить предмет от всех остальных. Объем понятия - множество предметов, каждому из которых принадлежат эти признаки. Суждение - форма мышления, в которой что-либо утверждается или отрицается о наличии предмета, его свойствах и действиях. Характеризуется содержанием и формой. Содержанием суждения является его смысл. Форма - способ построения. Суждения бывают истинными и ложными. Умозаключение - форма мышления, в которой из одно­го или нескольких суждений на основании определенных правил вывода получается новое суждение (вывод, или за­ключение). Алгебра логики имеет приложения при синтезе релейно-контактных и электронных схем. В этой теории отвлекаются от содержания высказывания, а рассматривают только то его свойство, что оно представляет собой или истину, или ложь. Тогда высказывание можно рассматривать как величину, которая может принимать два значения: «истина» и «ложь». Высказывания обозначаются прописными латинскими буквами А, В, С, D ..., а их значения «Истина» или «Ложь» можно записывать как TRUE и FALSE, или Т и F, или 1 и 0, или И и Л. Примеры высказываний: «Луна - спутник Земли». «Все числа - целые».



Над высказываниями в алгебре логики определяются следующие основные логические операции:

Логическое отрицание (инверсия) - это логическая операция, применяемая к одному высказыванию. Высказыва­ние А есть высказывание, которое ложно, когда А истинно, и истинно, когда А ложно. Высказывание называется отрицанием А. Возможные обозначения отрицания: not А, не А.

Логическое умножение (конъюнкция) - это логическая операция, ставящая в соответствие каждым двум простым высказываниям составное высказывание, являющееся истинным тогда и только тогда, когда оба исходных высказывания истинны. Возможные обозначения конъюнкции: A И В, А & В, A AND В, А·В, А U В, АВ.

Логическое сложение (дизъюнкция) - это логическая операция, ставящая в соответствие каждым двум простым высказываниям составное высказывание, являющееся истинным тогда и только тогда, когда истинно хотя бы одно из высказываний. Возможные обозначения дизъюнкции: А ИЛИ В, A OR В, А + В, А || В.

Логическое следование (импликация) - это высказывание ложно тогда и только тогда, когда А истинно, а В ложно. Возможные обозначения импликации: А => В. -Эквивалентность - это высказывание истинно тогда и только тогда, когда А и В оба истинны или оба ложны. Возможные обозначения эквивалентности: А ~ В, А U В. Логические операции позволяют каждой формуле при за­данных значениях входящих в нее высказываний приписать одно из двух значений: 0 или 1.

Примеры решения задач на операции формальной логики.

В формальной длгике над высказываниями можно производить определенные логические операции. К таким логическим операциям относятся: логическое умножение (конъюнкция), логическое сложение (дизъюнкция), логическое отрицание (инверсия), логическое следование (импликация), логическое равенство (эквивалентность).

1. Операция, выражаемая связкой “и”, называется конъюнкцией (лат. conjunctio - соединение) или логическим умножением и обозначается знаком & (может также обозначаться знаками ^ или ). Высказывание А & В истинно тогда и только тогда, когда оба высказывания А и В истинны.

Пример: Высказывание “10 делится на 2 и 5 больше 3” истинно, а высказывания “10 делится на 2 и 5 не больше 3”, “10 не делится на 2 и 5 больше 3”, “10 не делится на 2 и 5 не больше 3” ложны.

2. Операция, выражаемая связкой “или” (в неразделительном, неисключающем смысле этого слова), называется дизъюнкцией (лат. disjunctio - разделение) или логическим сложением и обозначается знаком v (или плюсом). Высказывание А v В ложно тогда и только тогда, когда оба высказывания А и В ложны.

Пример: Высказывание “10 не делится на 2 или 5 не больше 3” ложно, а высказывания “10 делится на 2 или 5 больше 3”, “10 делится на 2 или 5 не больше 3”, “10 не делится на 2 или 5 больше 3” истинны.

3. Операция, выражаемая словом “не”, называется отрицанием и обозначается чертой над высказыванием. Высказывание A истинно, когда A ложно, и ложно, когда истинно.

Пример: «Луна - спутник Земли» (А истинно), «Луна - не спутник Земли» (А ложно).

4. Операция, выражаемая связками “если..., то”, “из... следует”, “... влечет...”, называется импликацией (лат. implico - тесно связаны) и обозначается знаком =>. Высказывание А => В ложно тогда и только тогда, когда А истинно, а В - ложно. Каким же образом импликация связывает два элементарных высказывания? Покажем это на примере высказываний: “данный четырёхугольник - квадрат” (А) и “около данного четырёхугольника можно описать окружность” (В). Рассмотрим составное высказывание А В, понимаемое как “если данный четырёхугольник квадрат, то около него можно описать окружность”. Есть три варианта, когда высказывание А =>В истинно: А истинно и В истинно, то есть данный четырёхугольник квадрат, и около него можно описать окружность; А ложно и В истинно, то есть данный четырёхугольник не является квадратом, но около него можно описать окружность (разумеется, это справедливо не для всякого четырёхугольника); A ложно и B ложно, то есть данный четырёхугольник не является квадратом, и около него нельзя описать окружность.

5. Операция, выражаемая связками “тогда и только тогда”, "необходимо и достаточно”, “... равносильно...”, называется эквивалентностью или двойной импликацией и обозначается знаком <=> или ~ . Высказывание А <=> В истинно тогда и только тогда, когда значения А и В совпадают.

Пример: высказывания “24 делится на 6 тогда и только тогда, когда 24 делится на 3”, “23 делится на 6 тогда и только тогда, когда 23 делится на 3” истинны, а высказывания “24 делится на 6 тогда и только тогда, когда 24 делится на 5”, “21 делится на 6 тогда и только тогда, когда 21 делится на 3” ложны.

Системы счисления 2

Двоичная система счисления 3

Контрольная работа. 5

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

Самостоятельная работа 12

Решение примеров на перевод. 13

Контрольная работа. 14

Системы счисления

Каждый день мы с вами используем слова «число» и «цифра». А что означают эти слова?

Определение: Цифра – это символ, участвующий в записи числа.

Под числом будем понимать его величину, а не его символьную запись. Число изображается несколькими символами (цифрами) некоторого алфавита.

Определение: Система счисления – это совокупность правил для обозначения и наименования чисел; способ представления числа символами некоторого алфавита (цифрами).

Системы счисления делятся на:

непозиционные

позиционные

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

Например: римская система счисления.

Определение: Система счисления называется позиционной, если значение цифры зависит от ее места (позиции) в записи числа.

Например: десятичная система счисления.

История развития систем счисления

Группы систем счисления

I. Анатомического происхождения:

II. Алфавитные:

    славянская

    древнеармянская

    древнегрузинская

    древнегреческая (ионическая)

III. Машинные:

IV. Прочие:

    вавилонская (60-ная)

  1. египетская

Домашнее задание: написать реферат.

Для подготовки реферата – литература:

    Мир чисел

    Энциклопедии

    История математики в России

    «За страницами учебника математики»

    Я познаю мир

План реферата:

      Где была распространена, как развивалась и где сохранилась.

    1. Примеры записи чисел.

      Использованная литература.

Двоичная система счисления

Алфавит: 0,1.

Свойства сложения: 0+0=0

При сложении необходимо учитывать возможные переносы единиц из младших разрядов в старшие.

А) +10101 б) +1001 в) +1101 г) +110111

1010 1010 1011 11010

11111 10011 11000 1010001

д) +101011 е) +100001

11101 110010

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

    10010011+1011011=11101110 7

    10110111+10011011=101010010 2

    10011101+11101101=110001010 9

    10010111+1011100=11110011 15

    11101001+10011101=110000110 1

    11010011+11011011=110101110 11=6

    11001011+11011011=110100110 8

    11101111+10111111=110101110 6=11

    10101010+11001100=101110110 12

10) 10110011+1010101=100001000 4

11) 110011001+111011101=1101110110 14

12) 100110011+101110111=1010101010 3

13) 110111011+101010101=1100010000 16

14) 110111011+110110110=1101110001 10

15) 11011101+100110011=1000010000 5

16) 101110110+101100111=1011011101 13

Записать на полях тетради: 1+1=10

Домашнее задание: Те примеры, которые не успели решить в классе. Часть примеров проверяется у доски, остальные по номерам ответов.

Вычитание в двоичной системе счисления

      Повторить свойства сложения.

      Свойства вычитания: 1-0=1

      Примеры разбираются у доски учителем:

А) -100010 б) -100001 в) –1010001 г) - 1010100

101 110 101 1011

11101 11011 1001100 1001001

д) -100111 е) - 100100 ж) - 110011 з) - 101110

10111 10111 11101 11010

10000 1101 10110 10100

и) - 10011101 к) - 10111011

1101101 1011101

      Примеры для самостоятельного решения.

Примеры раздаются на карточках. Варианты возможных ответов записываются на доске.

Нужно найти соответствие между множеством примеров и множеством ответов.

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

Вычитание всегда можно проверить сложением.

    10110011-10001000=101011 3

    11001100-10111011=10001 8

    110101110-10111111=11101111 11

    110100110-11001011=11011011 4

    110101110-11011011=11010011 6

    110000110-10011101=11101001 1

    11110011-10010111=1011100 7

    101001010-11101101=1011101 10

    101010010-10011011=10110111 5

10) 11101110-1011011=10010011 9

11) 1010111001-11101110=111001011 12

12) 111110101-10110111=100111110 2

Домашнее задание: примеры, которые не успели в классе.

Умножение в двоичной системе счисления

    Что такое система счисления?

    Назовите системы счисления анатомического происхождения?

    Объясните анатомическое происхождение 5-ой, 10-ой, 12-ой, 20-ой систем счисления?

    Где и как сегодня используются 12-ая, 60-ая, 20-ая системы счисления?

    Почему возникновение 10-ой системы счисления считается одним из важнейших достижений человеческой мысли?

    Какова причина того, что 10-ая система счисления стала общепринятой?

    Правильно ли называть цифры 10-ой системы счисления арабскими?

    Какие системы счисления называются позиционными и непозиционными?

    Римская система счисления: чем она удобна, правила записи чисел, где используется?

II.Повторение сложения и вычитания:

    10101+101=11010 5) 1010100-11=1010001

    11010+1011=100101 6) 1010001-101=1001100

    10101+1011=100000 7) 100000-1011=10101

    1010100+111=1011011 8) 100010-101=11101

III. Свойства умножения: 0*0=0

А) *1011 б) *10001 в) *11010 г) *11001

11 11 101 1101

1011 10001 11010 11001

1011 10001 11010 11001

100001 110011 10000010 11001

IV. Примеры для самостоятельного решения.

    111101*111101=111010001001 2

    100001*111111=100000011111 11

    111110*100010=100000111100 12

    100011*111101=100001010111 6

    111100*100100=100001110000 3

    100101*11011=1111100111 7

    111010*100110=100010011100 10

    100111*111011=100010101111 4

    111000*101000=100011000000 8

10) 101001*110111=100011001111 5

11) 110110*101010=100011011100 9

12) 101011*110101=100011100111 1

Контрольная работа.

Проверить примеры №10-12 из домашнего задания.

    10010011+1011011=11101110

    11101001+10011101=110000110

    10010111+1011100=11110011

    11001011+11011011=110100110

    10101010+11001100=101110110

    100001000-10110011=1010101

    110101110-10111111=11101111

    11011011-1101011=1110000

    11110011-10010111=1011100

10) 101010010-10011011=10110111

11) 100001*111111=100000011111

12) 100011*111101=100001010111

13) 100101*111011=100010000111

14) 100111*111001=100010101111

15) 101001*110111=100011001111

    1011101+11101101=101001010

    10110111+10011011=101010010

    11010011+11011011=110101110

    11101111+10111111=110101110

    10110011+1010101=100001000

    11001100-1011101=1101111

    11001011-1101001=1100010

    110000110-10011101=11101001

    101001010-10011011=10101111

    11101110-1011011=10010011

    111110*100010=100000111100

    111100*100100=100001110000

    111010*100100=100000101000

    111000*101000=100011000000

    110110*101010=100011011100

Домашнее задание: повторить все правила.

Деление в двоичной системе счисления

I. Повторить свойства и правила сложения и вычитания.

У доски: 1101011+11011=

1110100-11=1110001

111100*111110=111010001000

101111*110001=100011111111

II. Сначала разбираем у доски.

А) 100001/11 б) 10000010/1101 0

11 1011 1101 101

11 1101

в) 11001100/11 0

11 100010

III.Примеры для самостоятельного решения:

    11100110101:101101=101001 9

    100011111100:110010=101110 10

    100011001111:110111=101001 9

    100001110000:111100=100100 11

    111010000101:111111=111011 6

    101000100101:110101=110001 2

    100011110111:101101=110011 1

    111010001001:111101=111101 8

    11111100101:101011=101111 4

10) 100011011100:110110=101010 5

11) 1110100001000:111100=111110 3

12) 101111001101:110101=111001 12

13) 100011111111:101111=110001 2

14) 100010000111:111011=100101 7

15) 101011110101:110111=110011 1

IV. Домашнее задание: примеры №9-12.

Решение примеров на умножение и деление

    Проверить домашнее задание

    Решение примеров:

    101001*101101=11100110101

    101110*110010=100011111100

    110111*101001=100011001111

    100100*111100=100001110000

    111111*111011=111010000101

    111110*100010=100000111100

    111010*100110=100010011100

    111000*10100=10001100000

И примеры №13-15 (предыдущего урока)

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

Повторить правила операций сложения, умножения в двоичной системе счисления.

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

    Записать в словари алгоритмы и примеры.

Алгоритм перевода целого числа:

      Делить данное число и получаемые неполные частные на 2 до тех пор, пока не получили неполное частное равное 0

      Составить число в двоичной системе счисления, записывая остатки от деления, начиная с последнего остатка.

10 5/2

1 4 2/2

1 2 1/2

Алгоритм перевода дробной части:

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

    Составить число, записывая его начиная с первой целой части.

0,5625 10 = 0,1001 2

Алгоритм перевода смешанных чисел

    Отдельно перевести целую и дробную части

    Записать результат.

17,25 10 = 10001,01 2 12,24 10 = 1100,0011 2

17 10 = 10001 2 12 10 =1100 2

Решение примеров:

    513 10 =1000000001 2

    600 10 =1001011000 2

    602 10 =1001011010 2

    1000 10 =11111010001 2

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

Алгоритмы перевода целых, дробных, смешанных чисел из 10-ой системы счисления в двоичную.

      Решение примеров.

А) 1) 2304 10 = 100100000000 2

2) 5001 10 = 1001110001001 2

3) 7000 10 = 1101101011000 2

4) 8192 10 = 10000000000000 2

б) 5) 0,4622 10 =0,011101 2

6) 0,5198 10 = 0,100001 2

7) 0,5803 10 = 0,100101 2

8) 0,6124 10 = 0,100111 2

9) 0,7351 10 = 0,101111 2

10) 0,7982 10 = 0,110011 2

11) 0,8544 10 = 0,110110 2

12) 0,9321 10 = 0,111011 2

В) III. Домашнее задание

13) 40,5 10 = 101000,1 2

14) 31,75 10 = 11111,11 2

15) 124,25 10 = 1111100,01 2

16) 173,2 10 = 10101101,00110

17)33,28 10 = 100001,010001 2

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

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

Что такое основание системы счисления?

    Перевод в 10-ую систему счисления осуществляется по степенному ряду.

Любое число в 10-ой системе счисления можно представить в следующем виде:

284 10 = 2*100+8*10+4*1= 2*10 2 +8*10 1 +4*10 0 =284 10

Это и есть представление числа в виде степенного ряда.

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

Давайте представим в этом виде число 2102 3 , оно записано в 3-ой системе счисления, значит будем каждую цифру числа умножать на степень числа 3:

1) 2102 3 = 2*3 3 +1*3 2 +0*3 1 +2*3 0 =54+9+0+2=65 10

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

    Решение примеров:

1) 1101011 2 = 2 6 *1+2 5 *1+2 4 *0+2 3 *1+2 2 *0+2 1 *1+2 0 =107 10

2) 6104 8 = 8 3 *6+8 2 *1+8 1 *0+8 0 *4=3140 10

3) 29 16 =16 1 *2+16 0 *9=41 10

4) 128 16 = 16 2 *1+16 1 *2+16 0 *8=296 10

5) 4226 8 = 2198 10

6) 101011 2 = 43 10

9)11111 2 = 31 10

10)6234 16 = 25140 10

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

    Вспомнить особенности 2-ой системы счисления.

    Записать в словари алфавит: 0,1,2,3,4,5,6,7

    Заполнить таблицу:

        Перевести числа из 10-ой системы счисления в 8-ую.

    1. 1023 10 = 1777 8

      1500 10 = 2734 8

      1777 10 = 3361 8

        Сформулировать правила арифметических операций в 8-ой системе счисления и решить примеры.

    1) 770 8 + 236 8 = 1226 8

    2) 715 8 + 373 8 =1310 8

    3) 524 8 + 57 8 =603 8

    4) 712 8 +763 8 =1675 8

    5) 3217 8 +765 8 =4204 8

        Самостоятельная работа. 8) 7213 8 -537 8 =6454 8

    6)5731 8 +1376 8 =7327 8 9) 7125 8 -756 8 =6157 8

    7) 6351 8 +737 8 =7310 8 10) 531 8 -452 8 =57 8

    Арифметические операции в 8-ой системе счисления

        Повторить алфавит 8-ой системы счисления.

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

    Правила арифметических операций.

        Решение примеров.

      776472+ 763342=1762034

      532661+257721=1012602

      354243+467566=1044031

      432077+645662=1277761

      273462-156777=114463

      700056-365762=312074

      300064-212373=65471

      2101,01-735,4567=1143,3311

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

Правила перевода, правила арифметических операций.

II. Записать в словарь алфавит: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.

III. Заполнить таблицу.

IV. Перевести числа в 16-ую систему счисления.

  1. 1023 10 = 3FF 16

    1500 10 = 5DC 16

    1777 10 = 6F1 16

    Решить примеры

    207 16 +3d4 16 =5db

    118 16 +da 16 =1f2

    a25 16 +b9df 16 =c404

    Домашнее задание

2) 3914 10 =f4a 16

4) 6403 10 =1903 16

7) d2c+9797=a4c3

8) 2ca9+b62f=e2d8

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

1) 2b 16 = 43 10

2) 623e 16 =25150 10

3) 1000 16 = 4096 10

4) 12f 16 = 303 10

5) 3842 10 =182 16

6) 573 10 =23d 16

7) 975 10 =6f 16

Самостоятельная работа

I вариант.

Перевести:

1) 31,5 10 =11111,1 2

2) 124,25 10 =1111100,01 2

3) 489 10 =751 8

4) 2277 10 =8e5 16

5) 110011 2 =51 10

6) 11010 2 =26 10

7) 7512 8 =3914 10

8) fad 16 =4013 10

9) 2749 10 =5275 8

10) 114 8 =76 10

II вариант.

Перевести:

1) 40,75 10 =101000,11 2

2) 173,5 10 =10101101,1 2

3) 141 10 =215 8

4) 2377 10 =949 16

5) 10011 2 =19 10

6) 110101 2 =53 10

7) 5327 8 =2775 10

8) abc 16 =2748 10

9) 2750 10 =5276 8

10) 115 8 =77 10

11) f2c7 16 -bcb 16 =e6fc 16

12) a4c3 16 -d2c 16 =9797 16

13) 7f10 16 -5fac 16 =1f64 16

14) abc 16 +e57 16 =1913 16

15) a39 16 +19bc 16 =23f5 16

11) ae53 16 -cf8 16 =a15b 16

12) e2d8 16 -2ca9 16 =b62f 16

13) a2fd 16 -fda 16 =9323 16

14) fad 16 +b86 16 =1b33 16

15) 9e6 16 +b16f 16 =bb55 16

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

I Работа над ошибками

1) 3915 10 =f4b 16

2) 623e 16 =251501 10

3) 45 10 =101101 2

4) 4226 8 =2198 10

5) 101100 2 =44 10

6)110 2 *1101 2 =1001110 2

    Правила перевода целой и дробной части из 10-ой системы счисления в 2-ую

    Правила перевода чисел из 8-ой, 2-ой, 16-ой в 10-ую систему счисления.

II Алгоритм:

Для того, чтобы любое двоичное число перевести в систему счисления с основанием q=2 n , нужно:

      данное двоичное число разбить слева и справа от запятой на группы по n цифр в каждой.

      если в последних правой и левой группах окажется меньше n цифр, то их надо дополнить справа и слева нулями до нужного числа цифр

      рассмотреть каждую группу как n-разрядное двоичное число и записать ее соответствующей цифрой в системе счисления с основанием q=2 n .

III Решение примеров:

    10100010010110 2 =24226 8

    10110011011011 2 =26333 8

    11100110101001 2 =34651 8

    1111011110100 2 =17364 8

    110001000111110 2 =61076 8

    110101011 2 =653 8

    1100111000010 2 =14702 8

    1100111011111001 2 =

Перевод чисел из 8-ой, 16-ой систем счисления в 2-ую.

Все правила перевода!

II Алгоритм:

Для того, чтобы произвольное число, записанное в системе счисления с основанием q=2 n перевести в двоичную систему счисления, нужно каждую цифру этого числа заменить ее n-значным эквивалентом в 2-ой системе счисления.

Например:

    4ac35 16 =01001010110000110101 2

    41035 8 =100001011101 2

III Решение примеров:

    e69fd1d 16 =1110011010011111110100011101 2

    f7a0 16 =1111011110100000 2

    ae5d73b 16 =1010111001011101011100111011 2

    2a10 16 =10101000010000 2

    1234 8 =001010011100 2

    1234 16 =0001001000110100 2

    f1f72 16 =11110001111101110010 2

    2856 16 =0010100001010110 2

Решение примеров на перевод.

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

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

    алгоритм перевода из 8-ой и 16-ой систем счисления в 2-ную

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

    сформулировать правила сложения в 16-ой системе счисления

    сформулировать правила вычитания в 8-ой системе счисления.

II Решение примеров:

  1. 4820 10 =11324 8

    4820 10 =12d4 16

  2. 11100110101 2:101001 2 =101101 2

    11100 2 *10110 2 =1001101000 2

    110011 2 *1011 2 =1000110001 2

    111010000101 2:111111 2 =111011 2

10)f1a5 16 =1111000110100101 2 =170645 8

Контрольная работа.

I вариант.

  1. 293 10 =100100101 2

  2. 111100110101 2 =7465 8 =f35 16

    b26a 16 =1011001001101010 2 =131152 8

    a15b 16 +cf8 16 =ae53 16

    9323 16 +fda 16 =a2fd 16

    110101 2 *110001 2 =101000100101 2

10) 100011011100 2:101010 2 =110110 2

11) 4204 8 -765 8 =3217 8

12) 1310 8 -715 8 =373 8

II вариант.

  1. 107 10 =1101011 2

  2. 100011111100 2 =4374 8 =8fc 16

    f7ce 16 =1111011111001110 2 =173716 8

    e6fc 16 +bcb 16 =f2c7 16

    1f64 16 +5fac 16 =7f10 16

    110011 2 *101101 2 =100011110111 2

10) 100010011100 2:111010 2 =100110 2

11) 1675 8 -712 8 =763 8

Системы счисления

Двоичная система счисления

8-ая система счисления

16-ая система счисления

Кодирование чисел 15

Кодирование целых чисел 16

Умножение и деление 21

Преимущества и недостатки 25

Двоичная система счисления

В двоичной (binary ) системе счисления всего две цифры, называемые двоичными (binary digits). Сокращение этого наименования привело к появлению термина бит , ставшего названием разряда двоичного числа. Веса разрядов в двоичной системе изменяются по степеням двойки. Поскольку вес каждого разряда умножается либо на 0, либо на 1, то в результате значение числа определяется как сумма соответствующих значений степеней двойки. Если какой-либо разряд двоичного числа равен 1, то он называется значащим разрядом. Запись числа в двоичном виде намного длиннее записи в десятичной системе счисления.

Арифметические действия, выполняемые в двоичной системе, подчиняются тем же правилам, что и в десятичной системе. Только в двоичной системе перенос единиц в старший разряд возникает чаще, чем в десятичной. Вот как выглядит таблица сложения в двоичной системе:

0 + 0 = 0 0 + 1 = 1

1 + 0 = 1 1 + 1 = 10 (перенос в старший разряд)

Таблица умножения для двоичных чисел еще проще:

0 * 0 = 0 0 * 1 = 0 1 * 0 = 0 1 * 1 = 1

Пример выполнения операции сложения в двоичной системе счисления:

1 1 1

1 0 1 1 2 Красным цветом показан перенос из младших разрядов в

1 1 0 2 старшие

1 0 0 0 1 2

Для проверки правильности выполнения операции переведем все три числа из двоичной системы в 10-ую:

1011 = 1*2 3 + 1*2 1 + 1 = 8 + 2 + 1 = 11 10

3 2 1 0

110 = 1*2 2 + 1*2 1 = 4 + 2 = 6 10

2 1 0

10001 = 1*2 4 + 1 = 16 + 1 = 17 10

4 3 2 1 0

Сумма первых двух чисел (11 и 6) равна третьему числу (17), следовательно операция выполнена верно.

Обратите внимание на то, что при добавлении к числу, состоящему из единиц (11…1), еще одной единицы, получается число, равное 1 с количеством нулей, равным количеству единиц исходного числа, например:

1111 1111 2 + 1 = 1 0000 0000 2 = 2 8

Пример выполнения операции вычитания в двоичной системе счисления:

Вычитание выполняется по тем же правилам, что и в 10-ой системе, но в 10-й системе при заеме единицы старшего разряда она превращается в 10 единиц младшего разряда, а в 2-й системе – в 2 единицы. Если нужно произвести заем не в соседнем разряде, а далее влево, то из каждых двух единиц текущего разряда одна остается в этом разряде, а вторая передается вправо. Сравните :

9 9 10 1 1 2

1 0 0 0 10 1 0 0 0 2

1 - 1

9 9 9 10 1 1 1 2

Выполним в 2-й системе счисление вычитание 17 10 – 6 10 :

0 1 1 2

1 0 0 0 1 2

1 1 0 2

1 0 1 1 2 = 11 10 Проверка показывает, что вычитание выполнено верно.

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

2 8 - 1 = 1 0000 0000 2 – 1 = 1111 1111 2

1023 = 1024 – 1 = 2 10 – 1 = 11 1111 1111 2

Пример выполнения операции умножения в двоичной системе счисления:

1 1 0 1 2 = 13 10

* 1 0 1 2 = 5 10

1 1 0 1

1 1 0 1

1 0 0 0 0 0 1 2 = 2 6 +1 = 64 +1 =65 10 (13 * 5 = 65)

6 5 4 3 2 1 0

Рассмотрим подробнее, как процессор выполняет умножение двоичных чисел. Пусть надо умножить число 1101 на 101 (оба числа в двоичной системе счисления). Машина делает это следующим образом: она берет число 1101 и, если первый справа элемент второго множителя равен 1, то она заносит его в сумму. Затем сдвигает число 1101 влево на одну позицию, получая тем самым 11010, и, если, второй элемент второго множителя равен единице, то добавляет его к сумме. Если элемент второго множителя равен нулю, то сумма не изменяется. Этот процесс сдвигов и сложений повторяется.

Пример выполнения операции деления в двоичной системе счисления:

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

В качестве примера разделим 143 10 = 10001111 2 на 13 10 = 1101 2

1 0 0 0 1 1 1 1 1 1 0 1

1 1 0 1 1 0 1 1 2 = 11 10

1 0 0 1 1

1 1 0 1

1 1 0 1

1 1 0 1

Проверка показывает, что деление выполнено верно (143 / 13 = 11).

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

1011 2 * 10 2 = 10110 2.

1011 2 / 10 2 = 101.1 2.

8-ая система счисления

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

Для облегчения восприятия двоичного числа решили разбивать его на группы разрядов, например, по три или четыре разряда. Эта идея оказалась очень удачной, так как последовательность из трех бит имеет 8 комбинаций, а последовательность из 4 бит - 16. Числа 8 и 16 являются степенями двойки, поэтому легко находить соответствие с двоичными числами. Развивая эту идею, пришли к выводу, что группы разрядов можно закодировать, сократив при этом длину последовательности знаков. Для кодировки трех битов требуется восемь цифр, поэтому взяли цифры от 0 до 7 десятичной системы. Для кодировки же четырех битов необходимо шестнадцать знаков; для этого взяли 10 цифр десятичной системы и 6 букв латинского алфавита: A, B, C, D, E, F. Полученные системы, имеющие основания 8 и 16, назвали соответственно восьмеричной и шестнадцатеричной.

В восьмеричной (octal) системе счисления используются восемь различных цифр: 0, 1, 2, 3, 4, 5, 6, 7. Основание системы - 8. При записи отрицательных чисел перед последовательностью цифр ставят знак минус. Сложение, вычитание, умножение и деление чисел, представленных в восьмеричной системе, выполняются весьма просто, подобно тому, как это делают в общеизвестной десятичной системе счисления.

Пример выполнения операции сложения в восьмеричной системе счисления:

1 1 Красным цветом показан перенос из младших разрядов в старшие.

4 7 6

3 4 1) 6 + 4 = 10 = 1*8 + 2 = 12 8

5 3 2 2) 1 + 7 + 3 = 1*8 + 3 = 13 8

3) 1 + 4 = 5

Проверим результат путем перевода чисел в десятичную систему счисления:

476 8 = 4*8 2 + 7*8 + 6 = 318 318

34 8 = 3*8 + 4 = 28 + 28

532 = 5*8 2 + 3*8 + 2 = 346 346

Пример выполнения операции вычитания в восьмеричной системе счисления:

7 8 Красным цветом показан перенос из старших разрядов в младшие .

5 3 2 Выполнение операции в каждом разряде:

3 4 1) 8 + 2 – 4 = 6

4 7 6 2) 7 + 2 - 3 = 1 *8 + 3 = 13 8

3) 1 + 4 = 5

Пример выполнения операции умножения в восьмеричной системе счисления:

5 4 54 4*4 = 16 = 2 *8 + 0 = 20 8 (записываем 0)

* 3 4 * 4 2+ 5*4 = 22 = 2 *8 + 6 = 26 8

2 6 0 260

2 0 4

2 3 2 0 54 4*3 = 12 = 1 *8 + 4 = 14 8 (записываем 4)

* 3 1 + 5*3 = 16 = 2 *8 + 0 = 20 8

Выполним проверку :

54 8 = 5*8 + 4 = 44 10 44

34 8 = 3*8 + 4 = 28 10 * 28

2320 8 = 2*8 3 + 3*8 2 + 2*8 = 1232 10 352

88 = 1232 10

Пример выполнения операции деления в восьмеричной системе счисления:

2 3 2 0 8 5 4 8

2 0 4 3 4 8

2 6 0

2 6 0

Деление в восьмеричной системе близко делению в десятичной системе: нужно подобрать цифры частного. 232 делим на 54, в десятичной системе мы получили бы целое частное 4, но из предидущего примера мы знаем, что в восьмеричной системе 54*4 = 260, это много, попробуем взять цифру поменьше – 3, умножаем 54*3 = 204, эта цифра подходит, и т.д.

В различных языках программирования запись восьмеричных чисел начинается с 0, например, запись 011 означает десятичное число 9.

16-ая система счисления

В шестнадцатеричной (hexadecimal) системе счисления применяются десять цифр от 0 до 9 и шесть первых букв латинского алфавита:

10 – A 11 – B 12 – C 13 – D 14 – E 15 – F .

При записи отрицательных чисел слева от последовательности цифр ставят знак минус.

Для того чтобы при написании компьютерных программ отличить числа, записанные в шестнадцатеричной системе, от других, перед числом ставят 0x. То есть 0x11 и 11 - это разные числа.

Шестнадцатеричная система счисления широко используется при задании различных оттенков цвета при кодировании графической информации (модель RGB). Так, в редакторе гипертекста Netscape Composer можно задавать цвета для фона или текста как в десятичной, так и шестнадцатеричной системах счисления (см. рисунок).

Пример выполнения операции сложения в 16-ой системе счисления:

1 1 Красным цветом показан перенос из младших разрядов

A 7 B 16 Выполнение операции в каждом разряде:

C 8 16 B + 8 = 11 + 8 = 19 = 1*16 + 3 = 13 16 (записываем 3)

B 4 3 16 1 +7+С = 8+12 = 20 = 1*16 + 4 = 14 16 (записываем 4)

1 + A = B

Проверим резульат путем перевода чисел в 10-ю систему:

A7B 16 = 10*16 2 + 7*16 +11 = 2683

2 1 0 2683

C8 16 = 12*16 + 8 = 200 + 200

1 0 2883

B 43 16 = 11*16 2 + 4*16 +3 = 2883

2 1 0

Пример выполнения операции вычитания в 16-ой системе счисления:

15 16 Красным цветом показан заем из старших разрядов

B 4 3 16 Выполнение операции в каждом разряде:

A 7 B 16 16 + 3 – B = 19 -11 = 8

C 8 16 15 + 4 – 7 = 12 = C

B - 1 – A = 0

Умножение и деление в 16-ой системе обычно не выполняется ввиду сложности вычислений.

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

Перевод числа из системы счисления с основанием q в 10-ю систему счисления выполняется путем вычисления значения многочлена по степеням q , коэффициенты которого равны цифрам числа.

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

Перевод из 2-ой системы в 10-ую

1 0 1 1 . 1 0 1 2 = 1*2 3 + 0*2 2 + 1*2 + 1*2 0 + 1*2 -1 + 0* 2 -2 + 1*2 -3 =

3 2 1 0 -1 -2 -3

8 + 2 + 1 + 0.5 + 0.125 = 11.625

Для того, чтобы быстро переводить числа из двоичной системы счисления в 10-ую, необходимо запомнить степени двойки: 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024 и т.д. Отрицательные степени двойки: .5, .25, .125, .0625, .03125 и т.д.

Перевод из 8-ой системы в 10-ую

6 3 2.4 5 8 = 6*8 2 + 3*8 + 2 + 4* 8 -1 + 5*8 -2 = 6*64 + 24 + 2 +4 /8 + 5/64 =

2 1 0 -1 -2

410.578125

Перевод из 16-ой системы в 10-ую

E 7 F.8 16 = 14*16 2 + 7*16 + 15 + 8/16 = 14*256 + 7*16 + 15 + .5 = 3711.5

2 1 0 -1

Перевод из 10-ой системы в 2-ую

Перевод из 10-ой системы целой и дробной частей выполняется по различным алгоритмам, поэтому будем рассматривать их отдельно.

Перевод целой части

Пусть требуется перевести число 567 из десятичной в двоичную систему. Сначала определим максимальную степень двойки, такую, чтобы два в этой степени было меньше или равно исходному числу. В нашем случае это 9, т. к. 2 9 =512, а 2 10 =1024, что больше начального числа. Таким образом, мы получим число разрядов результата. Оно равно 9+1=10. Поэтому результат будет иметь вид 1ххххххххх, где вместо х могут стоять любые двоичные цифры. Найдем вторую цифру результата. Возведем двойку в степень 9 и вычтем из исходного числа: 567-2 9 =55. Остаток сравним с числом 2 8 =256. Так как 55 меньше 256, то девятый разряд будет нулем, т. е. результат примет вид 10хххххххх. Рассмотрим восьмой разряд. Так как 2 7 =128>55, то и он будет нулевым.

Седьмой разряд также оказывается нулевым. Искомая двоичная запись числа принимает вид 1000хххххх. 2 5 =32<55, поэтому шестой разряд равен 1 (результат 10001ххххх). Для остатка 55-32=23 справедливо неравенство 2 4 = 16 < 23, что означает равенство единице пятого разряда. Действуя аналогично, получаем в результате число 1000110111. Мы разложили данное число по степеням двойки:

567=1*2 9 + 0*2 8 + 0*2 7 + 0*2 6 + 1*2 5 + 1*2 4 + 0*2 3 + 1*2 2 + 1*2 1 + 1*2 0

При другом способ e перевода чисел используется операция деления в столбик. Рассмотрим то же самое число 567. Разделив его на 2, получим частное 283 и остаток 1. Проведем ту же самую операцию с числом 283. Получим частное 141, остаток 1. Опять делим полученное частное на 2, и так до тех пор, пока частное не станет меньше делителя. Теперь для того, чтобы получить число в двоичной системе счисления, достаточно записать последнее частное, то есть 1, и приписать к нему в обратном порядке все полученные в процессе деления остатки.

Результат, естественно, не изменился: 567 в двоичной системе счисления записывается как 1000110111.

Поскольку делить на 2 несложно, этот процесс можно записать более компактно:

Частное | Остаток

567 | 1 567 = 1000110111 2

283 | 1

141 | 1

70 | 0

35 | 1

17 | 1

8 | 0

4 | 0

2 | 0

1 | 1

Перевод дробной части

Алгоритм перевода дробной части :

  1. последовательно умножать дробную часть на основание новой системы счисления, пока не получим нулевую дробную часть или не будет достигнута требуемая точность вычислений.
  2. Записать полученные целые части произведений в прямой последовательности

Примеры :

  1. перевести 0.65625 в 2-ю систему счисления.

Умножаем дробную часть на 2:

целая часть дробная часть

произведения произведения

65625

1 3125

0 625

1 25

0 .65625 = 0.10101 2

  1. перевести 0.1 в 2-ю систему счисления.

Умножаем дробную часть на 2:

целая часть дробная часть

произведения произведения

0 2 Умножаем только дробную часть!

0 4 С этого места процесс повторяется

. . .

  1. = 0. 0 0011 0011 0011 …

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

Перевод из 10-ой системы в 8-ую

Перевод целой части

Алгоритм перевода из десятичной системы в систему счисления с основанием q путем деления и записи остатков в обратном порядке более удобен, поэтому для перевода числа в 8-ю и 16-ую системы мы будем использовать его.

Рассмотрим перевод числа 567 в систему счисления с основанием 8.

567 = 1067 8

Перевод дробной части

Переведем 0.65625 в 8-ю систему счисления.

Умножаем дробную часть на 8 :

целая часть дробная часть

произведения произведения

65625

5 25 Умножаем только дробную часть!

0 .65625 = 0. 52 8

Перевод из 10-ой системы в 16-ую

Перевод целой части

Делим число на 16 и записываем остатки в обратном порядке:

В шестнадцатеричной системе счисления необходимо заменить 10 на A , 11 на B и так далее.

Перевод дробной части

Переведем 0.65625 в 16-ю систему счисления.

Умножаем дробную часть на 16 :

целая часть дробная часть

произведения произведения

65625

10(A ) 5 Умножаем только дробную часть!

0.65625 = 0. A 8 16

Перевод из 2-ой системы в 8-ю или 16-ю и обратно

Пожалуй, проще всего осуществляется перевод чисел из двоичной системы в системы с основанием, равным степеням двойки (8 или 16), и наоборот. Для того чтобы целое двоичное число записать в системе счисления с основанием 2 n , нужно

  • данное двоичное число разбить на группы по n -цифр в каждой справа налево в целой части и слева-направо в дробной ;
  • если в последней группе окажется меньше n разрядов, то дополнить ее нулями до нужного числа разрядов;
  • рассмотреть каждую группу, как n -разрядное двоичное число, и заменить ее соответствующей цифрой в системе счисления с основанием 2 n .

Таблица перевода из двоичной системы в 16-ю и обратно

Десятичное значение

Двоичный код

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

0 000

0 001

0 010

0 011

0 100

0 101

0 110

0 111

1000

1001

1010

1011

1100

1101

1101

1111

Часть таблицы, выделенная бирюзовым, может использоваться для перевода из 2-й системы в 8-ю и обратно.

Примеры:

  1. Переведем число 11101.00111 2 из двоичной системы в восьмеричную.

Разбиваем двоичное число на тройки цифр:

11101.00111 2 = 011 101.001 110 2 = 35.16 8

Заменяем каждую тройку двоичных цифр соответствующей 8-й цифрой (см. таблицу).

Для перевода числа из 8-й системы счисления в 2-ю нужно каждую 8-ю цифру заменить тройкой двоичных цифр (рассмотрите тот же пример справа-налево).

  1. Переведем число 10000.110111 2 в 16-ю систему.

Разбиваем двоичное число на четверки цифр:

10000.110 1 11 2 = 000 1 0000.110 1 11 00 2 = 10.DC 16

Заменяем каждую четверку двоичных цифр соответствующей 16-й цифрой (см. таблицу).

Для перевода числа из 16-й системы счисления в 2-ю нужно каждую 16-ю цифру заменить четверкой двоичных цифр (рассмотрите тот же пример справа-налево).

Примеры двоичного кодирования информации

Среди всего разнообразия информации, обрабатываемой на компьютере, значительную часть составляют числовая, текстовая, графическая и аудиоинформация. Познакомимся с некоторыми способами кодирования этих типов информации в ЭВМ.

Кодирование чисел

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

Кодирование целых чисел

Множество целых чисел, представимых в памяти ЭВМ, ограничено. Диапазон значений зависит от размера области памяти, используемой для размещения чисел. В k -разрядной ячейке может храниться 2 k различных значений целых чисел.

Целые числа могут занимать 1, 2, 4 или 8 байт (для 64-разрядных машин).

Чтобы получить внутреннее представление целого положительного числа N , хранящегося в k -разрядном машинном слове, необходимо:

1. перевести число N в двоичную систему счисления;

2. полученный результат дополнить слева незначащими нулями до k разрядов.

Код целого числа может рассматриваться как двоичное число со знаком или без знака.

При беззнаковом представлении все разряды используются для записи значения числа.

Пример:

Число 107 = 1101011 2 будет записано:

в 1 байт как 01101011

в 2 байта как 00000000 01101011

1-й байт 0-й байт

в 4 байта как 00000000 00000000 00000000 01101011

3-й байт 2-й байт 1-й байт 0-й байт

Минимальное беззнаковое число равно 0. Максимальное беззнаковое число равно 2 n – 1, где n – кол-во двоичных разрядов, используемых для записи числа.

Например для 2-хбайтового представления max =11111111 11111111 2 =
1 00000000 00000000 – 1 = 2
16 – 1 = 65 535

Для записи чисел со знаком старший (левый) разряд отводится под знак числа. Если число неотрицательное, то в знаковый разряд записывается 0, в противном случае – 1, т.е. единица в знаковом разряде означает знак “минус”.

Целые числа со знаком могут быть записаны в прямом, обратном и дополнительном коде.

В прямом коде число хранится в виде: знак+абсолютное значение (модуль) числа.

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

Дополнительный код получают путем прибавления 1 к обратному.

Обратный и дополнительный код неотрицательных чисел совпадает с прямым.

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

Пример . Рассмотрим внутреннее представление целого отрицательного числа: -6 = 110 2 .

Однобайтовое:

Прямой код: 1 000 0110

Обратный код: 1 111 1001

Дополнительный: 1 111 1001

1 111 1010

Четырехбайтовое :

Прямой код: 1 0000000 00000000 00000000 00000110

Обратный код: 1 111111 1111111 11111111 111 1 1001

Дополнительный: 1 111111 1111111 11111111 11111001

1 111111 1111111 11111111 11111010

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

1) вычесть 1 из дополнительного кода (получаем обратный код) и заменить все нули на единицы, а единицы на нули;

2) сначала заменить все нули на единицы, единицы на нули, затем прибавить единицу к результату.

Пример: возьмем однобайтовый доп. код: 1111 1010 и используем второй алгоритм: 1111 1010 -- > - (0000 0101 + 1) = - 110 2 = -6.

Диапазон значений знаковых чисел

Рассмотрим однобайтовое представление. Возможные дополнительные коды знаковых чисел:

0111 1111

. . .

0000 0001

0000 0000

1111 1111

1111 1110 Отрицательные числа

. . .

1000 0000

Рассмотрим десятичные значения этих чисел:

0111 1111 = 2 7 – 1 = 128 - 1 = 127

0000 0001 = 1

0000 0000 = 0

1111 1111 -> -(000 0000 + 1) = -1

1111 1110 -> -(000 0001 + 1) = -2

1000 0000 -> -(111 1111 + 1) = -(1000 0000) = -2 7 = -128

Таким образом диапазон значений знаковых однобайтовых чисел:
от -128 до 127.

Аналогично, диапазон значений двухбайтовых целых чисел:
-2 15 - +(2 15 -1) (от -32768 до 32767 ).

Диапазон значений четырехбайтовых целых чисел со знаком:
-2 31 - +(2 31 – 1) (от -2 147 483 648 до 2 147 483 647 )

Сложение и вычитание целых чисел

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

Сложение обратных кодов . Здесь при сложении чисел А и В имеют место четыре основных и два особых случая:

1. А и В положительные . При суммировании складываются все разряды, включая разряд знака. Так как знаковые разряды положительных слагаемых равны нулю, разряд знака суммы тоже равен нулю. Например:

Получен правильный результат.

Например:

Получен правильный результат в обратном коде. При переводе в прямой код биты цифровой части результата инвертируются: 1 0000111 = –7 10 .

Например:

Компьютер исправляет полученный первоначально неправильный результат (6 вместо 7) переносом единицы из знакового разряда в младший разряд суммы.

4. А и В отрицательные. Например:

Полученный первоначально неправильный результат (обратный код числа –11 10 вместо обратного кода числа –10 10 ) компьютер исправляет переносом единицы из знакового разряда в младший разряд суммы. При переводе результата в прямой код биты цифровой части числа инвертируются: 1 0001010 = –10 10 .

Переполнение

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

5. А и В положительные, сумма А+В больше, либо равна 2 n–1 , где n — количество разрядов формата чисел (для однобайтового формата n=8, 2 n–1 = 2 7 = 128). Например:

Обратите внимание: в результате сложения положительных чисел получен отрицательный результат!

Семи разрядов цифровой части числового формата недостаточно для размещения восьмиразрядной суммы (162 10 = 10100010 2 ), поэтому старший разряд суммы оказывается в знаковом разряде. Это вызывает несовпадение знака суммы и знаков слагаемых , что является свидетельством переполнения разрядной сетки .

6. А и В отрицательные, сумма абсолютных величин А и В больше, либо равна 2 n–1 . Например:

В результате сложения отрицательных чисел получен результат > 0!

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

Сложение дополнительных кодов . Здесь также имеют место рассмотренные выше шесть случаев:

1. А и В положительные. Здесь нет отличий от случая 1, рассмотренного для обратного кода (коды неотрицательных чисел совпадают).

2. А положительное, B отрицательное и по абсолютной величине больше, чем А. Например:


Получен правильный результат в дополнительном коде. При переводе в прямой код биты цифровой части результата инвертируются и к младшему разряду прибавляется единица: 1 0000110 + 1 = 1 0000111 = –7
10 .

3. А положительное, B отрицательное и по абсолютной величине меньше, чем А. Например:

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

4. А и В отрицательные. Например:

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

Случаи переполнения

Для обнаружения переполнения разрядной сетки знаковый разряд дублируется . Такое представление чисел называется модифицированным дополнительным кодом:

1) 65 00 100 0001

+ 97 + 00 110 0001

162 01 010 0010

Разные цифры в знаковых разрядах свидетельствуют о том, что произошло переполнение.

2) -65 11 011 1111

+ -97 + 11 001 1111

-162 10 101 1110

Переполнение!

Для проверки знаковых разрядов используют результат операции “исключающее ИЛИ”, которая дает значение 1 только если операнды различны.

Сравнение рассмотренных форм кодирования целых чисел со знаком показывает:

на преобразование отрицательного числа в обратный код компьютер затрачивает меньше времени, чем на преобразование в дополнительный код, так как последнее состоит из двух шагов — образования обратного кода и прибавления единицы к его младшему разряду;

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

Умножение и деление

Во многих компьютерах умножение производится как последовательность сложений и сдвигов. Для этого в АЛУ имеется регистр, называемый накапливающим сумматором, который до начала выполнения операции содержит число ноль. В процессе выполнения операции в нем поочередно размещаются множимое и результаты промежуточных сложений, а по завершении операции — окончательный результат.

Другой регистр АЛУ, участвующий в выполнении этой операции, вначале содержит множитель. Затем по мере выполнения сложений содержащееся в нем число уменьшается, пока не достигнет нулевого значения.

Для иллюстрации умножим 110011 2 на 101101 2 .

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

Кодирование вещественных чисел

Формат с плавающей точкой использует представление вещественного числа R в виде произведения мантиссы m на основание системы счисления q в некоторой целой степени p , которую называют порядком: R = m * q p .

Представление числа в форме с плавающей точкой неоднозначно. Например, справедливы следующие равенства:

12.345 = 0.0012345 * 10 4 = 1234.5 * 10 -2 = 0.12345 * 10 2

Чаще всего в ЭВМ используют нормализованное представление числа в форме с плавающей точкой. Мантисса в таком представлении должна удовлетворять условию: 0.1 p <= m < 1. Иначе говоря, мантисса должна быть меньше 1 и первая значащая цифра - не ноль (p - основание системы счисления).

В памяти компьютера мантисса представляется как целое число, содержащее только значащие цифры (0 целых и запятая не хранятся), так для числа 12.345 в ячейке памяти, отведенной для хранения мантиссы, будет сохранено число 12345. Для однозначного восстановления исходного числа остается сохранить только его порядок, в данном примере - это 2.

Диапазон и точность представления чисел зависят от числа разрядов, отводимых под порядок и мантиссу. Обычно число в формате с плавающей запятой занимает в памяти 4 (float ) или 8 (double ) байтов.

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

Числа с плавающей запятой в разных вычислительных машинах (ВМ) имеют различные форматы. В настоящее время для всех ВМ рекомендован стандарт, разработанный международным центром стандартизации IEEE (In stitute of Electrical and Electronics Engineers ).

Стандарт IEEE 754

Рекомендуемый для всех ВМ формат представления чисел с плавающей запятой определен стандартом IEEE 754. Этот стандарт был разработан с целью облегчить перенос программ с одного процессора на другие и нашел широкое применение практически во всех процессорах и арифметических сопроцессорах.

Рис. 2.24. Основные форматы IEEE 754: а — одинарный; б — двойной

Стандарт определяет 32-битовый (одинарный) и 64-битовый (двойной) форматы (рис. 2.24) с 8- и 11-разрядным порядком соответственно. Самый левый бит хранит знак числа. Основанием системы счисления является 2.

Смещение равно соответственно 127 и 1023.

Максимальный порядок, который может иметь число: 127 и 1023.

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

Пример: рассмотрим 4-хбайтовый код числа 20.5:

20.5 = 10100.1 2 = 0.101001 * 2 5

Порядок (смещенный): 5+127 = 132 = 1000 0100 2

Мантисса: 101001 010010…0 (первая единица – скрытая, в конец мантиссы добавляются нули).

4-хбайтовое представление:

0

1

0

0

0

0

1

0

0

0

1

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

порядок мантисса

В 16-ом виде этот код будет выглядеть так: 42240000.

Определим максимальное число и его точность при 4-хбайтовом представлении.

Максимальное число:

.1…1 * 2 127 = 1 * 2 127 = 1.7 * 10 38

Максимальное значение мантиссы:

1…1 (24 единицы) = 2 24 – 1 = 2 10*2.4 = 1024 2.4 = 1.7*10 7 , следовательно точность представления мантиссы 7-8 значащих цифр.

Арифметические операции с числами в формате с плавающей запятой

Сложение и вычитание

Производятся в несколько этапов:

  1. Выравниваются порядки чисел в сторону большего (чтобы не получить мантиссы > 1)
  2. Складываются мантиссы. Для представления отрицательных чисел используется модифицированный дополнительный код. Порядок суммы будет равен общему порядку слагаемых.
  3. Нормализуется результат: порядок и мантисса изменяются так, чтобы первая значащая цифра результата попала в первый разряд после запятой.

Пример 1: Вычесть из числа A = 20.0 число B = 11.0.

A = 20 = 10100 2 = .101 * 2 5 = .101 * 10 101 (все числа –двоичные)

B = 11 = 1011 2 = .1011 * 2 4 = .1011 * 10 100

A порядок числа B и получает 1. Т.к. порядок числа A на единицу больше порядка числа B , порядок числа B увеличивается на 1 и мантисса при этом сдвигается на 1 разряд вправо относительно точки:

B = .01011 * 10 101

Мантисса числа B должна быть записана как отрицательное число (нужно выполнить вычитание):

B = -010110…0 = 1| 101001…1 = 1 | 101010…0

Обратный код Дополнительный

Сложение мантисс в модифицированном дополнительном коде:

00| 1010 00…0 (число A )

+ 11| 1010 10…0 (число B )

1 | 00| 0100 10…0 (сумма, порядок = 101 2 )

Нормализация результата: мантисса сдвигается влево, порядок уменьшается: A - B = .1001* 10 100 = 1001 2 = 9.0

Пример 2: Сложить A = 5.0 и B = 28.0.

A = 5 = 101 2 = .101 * 2 5 = .101 * 10 11 (все числа –двоичные)

B = 28 = 11100 2 = .111 * 2 5 = .111 * 10 101

Процессор для определения разности порядков вычитает из порядка числа A порядок числа B и получает -2. Т.к. порядок числа A на 2 меньше порядка числа B , порядок числа A увеличивается на 2 и мантисса при этом сдвигается на 2 разряда вправо относительно точки:

A = .00101 * 10 101

Сложение мантисс в модифицированном коде:

00| 0010 10…0 (число A )

+ 00 | 1110 00…0 (число B )

01| 0000 10…0 (сумма, порядок = 101 2 )

Произошло нарушение нормализации.

Нормализация результата: мантисса сдвигается вправо, порядок увеличивается: A + B = .100001* 10 110 = 100001 2 = 33.0

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

Умножение и деление

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

При делении из порядка делимого вычитается порядок делителя, а мантисса делимого делится на мантиссу делителя, затем результат нормализуется.

Двоично-десятичное кодирование информации

Двоично-десятичный код — (binary-coded decimal ) форма записи целых чисел, когда каждый десятичный разряд числа записывается в виде его четырёхбитного двоичного кода (вместо каждой десятичной цифры записывают ее двоичное значение) . Например, десятичное число 310 будет записано в двоичном коде как 100110110 2 , а в двоично-десятичном коде как 0011 0001 0000 BCD .

Преимущества и недостатки

Преимущества

  • Упрощён вывод чисел на индикацию — вместо последовательного деления на 10 требуется просто вывести на индикацию каждый полубайт. Аналогично, проще ввод данных с цифровой клавиатуры.
  • Для дробных чисел (как с фиксированной, так и с плавающей запятой) при переводе в человекочитаемый десятичный формат и наоборот не теряется точность.
  • Упрощены умножение и деление на 10, а также округление.

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

Недостатки

  • Усложнены арифметические операции.
  • Требует больше памяти.
  • В двоично-десятичном коде BCD существуют запрещённые комбинации битов:

Запрещённые в BCD битовые комбинации:

1010 1011 1100 1101 1110 1111


Запрещённые комбинации возникают обычно в результате операций сложения, так как в BCD используются только 10 возможных комбинаций 4-х битового поля вместо 16. Поэтому, при сложении и вычитании чисел формата BCD действуют следующие правила:

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

Пример операции сложения двоично-десятичных чисел:

Требуется : Найти число A = D + C, где D = 3927, C = 4856

Решение : Представим числа D и C в двоично-десятичной форме: D = 3927 = 0011 1001 0010 0111 C = 4856 = 0100 1000 0101 0110

Суммируем числа D и С по правилам двоичной арифметики:


* **

0011 1001 0010 0111

+ 0100 1000 0101 0110

___________________

= 1000 0001 0111 1101 - Двоичная сумма

+ 0110 0110 - Коррекция

___________________

1000 0111 1000 0011

"*" — тетрада, из которой был перенос в старшую тетраду

"**" — тетрада с запрещённой комбинацией битов

В тетраду, помеченую символом *, добавляем шестёрку т.к по правилам двоичной арифметики перенос унёс с coбой 16, а по правилам десятичной арифметики должен был унести 10. В тетраду, помеченую символом ** , добавляем шестёрку, так как комбинация битов 1101 (что соответствует десятичному числу 13) является запрещённой.


Знак

Loading...Loading...