SlideShare a Scribd company logo
Кодирование чисел в компьютере
ПРЕДСТАВЛЕНИЕ ЦЕЛЫХ ЧИСЕЛ Так как любое  целое  число можно представить как вещественное, но с нулевой дробной частью, то можно было бы ограничиться представлением в компьютере вещественных чисел и реализацией арифметических действий над ними. Однако для эффективного использования памяти повышения скорости выполнения вычислений введения операции деления нацело с остатком  ( в паскале  DIV  и  MOD) Целые числа представляются специально для них предназначенными способами.
Введение специальных способов представления целых чисел оправдано тем, что часто в задачах, решаемых с помощью компьютера,  многие действия сводятся к операциям над целыми числами . Например, в  задачах экономического характера , где данными служат количества акций, сотрудников, деталей, транспортных средств и т.д. для обозначения  даты и времени ; для  нумерации различных объектов : элементов массивов, записей в базах данных, машинных адресов и т.п.
Целые числа  в компьютере хранятся в форме с фиксированной запятой (точкой). Способы компьютерного представления целых чисел отличаются: количеством разрядов (8, 16, 32, 64-х разрядные сетки) наличием или отсутствием знакового разряда
БЕЗЗНАКОВОЕ ПРЕДСТАВЛЕНИЕ ЦЕЛЫХ ЧИСЕЛ Все разряды ячейки отводятся под само число. 1. 8-разрядная сетка -  разряды Пример : 52 10 = 110100 2 0 0 0 0 0 1 1 1 Диапазон представляемых чисел: А min =00000000 2 =0 10 A max =11111111=2 8 -1=255 10 Диапазон  0..255 В паскале – тип  BYTE 7 6 5 4 3 2 1 0
2. 16- разрядная сетка - разряды Диапазон представляемых чисел: А min =00000000 00000000 2 =0 10 A max =11111111 11111111 =2 16 -1= 6 55 35 10 Диапазон  0..65535 В паскале – тип  WORD 3.  32-разрядная сетка А min = 0  A max = 2 32 -1= 4 294 967 295  4. 64-разрядная сетка А min = 0  A max = 2 64 -1= 18 446 744 073 709 551 615  15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0
ПРЕДСТАВЛЕНИЕ ЦЕЛЫХ ЧИСЕЛ СО ЗНАКОМ Старший разряд разрядной сетки отводится под знак: 0 – для положительного числа 1 – для отрицательных чисел 1. 8-разрядная сетка -  разряды Пример : 52 10 = 110100 2 0 Знак положительного числа Пример :  -52 10 = - 110100 2 1 Знак отрицательного числа 7 6 5 4 3 2 1 0 0 1 1 0 1 0 0 7 6 5 4 3 2 1 0 0 1 1 0 1 0 0
Диапазон представляемых чисел: A max =1111111=2 7 -1= 1 2 7 10 А min =  - 128 10 В паскале – тип   SHORTINT 2. 16- разрядная сетка 1 A max = =2 1 5 -1=32767 10 А min = - 32768 10 В паскале – тип   INTEGER 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0
Машинные коды чисел В компьютере с помощью применения специальных машинных кодов чисел все арифметические операции над числами сводятся к операциям  арифметического сложения  и  сдвигу кодов.
Прямой машинный код Представление числа в привычной форме «знак-величина», когда первый бит  n -разрядного слова знаковый, а остальные  n -1 битов представляют цифровые разряды числа в двоичной системе счисления, называется  прямым кодом  двоичного числа. Прямой код целого числа полностью совпадает с записью самого числа в разрядной сетке компьютера.  Прямой код отрицательного целого числа отличается от прямого кода соответствующего положительного числа содержимым знакового разряда Пример.  Прямой код чисел Х=11011 2  и  Y =-11011 2  в восьмиразрядной сетке имеет вид:
[X пк ] = 0 0011011 [Y пк ] = 1 0011011 В системе прямых кодов существует два различных представления ноля: 0 0000000 – положительный 0; 1 0000000 – отрицательный 0. Оба представления совершенно равноправны. Прямой код используется  для хранения  положительных и отрицательных чисел в запоминающих устройствах и  для представления положительных чисел при выполнении операций  в арифметических устройствах.
Дополнительный   и   обратный   коды Для упрощения конструкций арифметических устройств вычислительных машин все арифметические операции, как правило, сводятся к сложению (операция вычитания) или к сериям сложений и сдвигов (операции умножения и деления). Замена операции вычитания (алгебраического сложения) на арифметическое сложение в компьютере осуществляется с помощью  обратного  и  дополнительного  кодов. Дополнительный код положительного числа  совпадает с этим числом.
Объяснение сущности специальных кодов 000 999 001 002 499 498 497 500 501 502 998 997 … … - + Рассмотрим на примере реверсивного счётчика для 3-х разрядных десятичных чисел: 999 + 1 = 1 000 -переполнение разрядной сетки! 000 - 1 = -1 -по счётчику  999  – код  –1 ! 000 a + (-a) = 0 005 + (-005) = 000 005 + 995 = 1 000 995 –  дополнительный код числа -005 5 – 2 = 5 + (-2) = 5 + 998 = 1 003  7 – 5 = 7 + (-5) = 7 + 995 = 1 002 Если учесть, что единица переполнения теряется,то получаем правильные результаты Для устранения неоднозначности в кольце будем считать половину состояний (0-499) кодами нуля и положительных чисел, а оставщуюся половину (500-999) –кодами отрицательных чисел.
Дополнительный код для отрицательного числа   равен дополнению его величины до числа, возникающего при переполнении разрядной сетки  q n , где  q  – основание системы счисления,  n  – число разрядов в разрядной сетке.  q n   -   называют константой образования дополнительного кода Операцию С = А – В, где А и В – целые положительные числа в любой системе счисления, можно представить в виде: С = А – В = А + (-В) = А + (-В) +  q n  – q n  = A +(q n - B)- q n А –первое слагаемое q n   –  В –  дополнительный код  числа  –В  (второго слагаемого) q n   – константа,   ликвидирующая единицу переполнения
Пример . А=95 10 ,  В=43 10 ,  n =2. Найти С=А-В. [-B дк ] =100 – 43 = 57 С = 95 +  [-B дк ]  – 100 = 95 + 57 – 100 = 152 – 100 = 52 Единицу в старшем разряде суммы можно просто зачеркивать. Необходимо найти способ получения дополнения произвольного числа Х до  q n  без использования вычитания: С = А – В = А + (-В) = А + (-В) +  q n  – q n  +1 -1  = A +(q n - 1-  B)- q n   + 1 Выражение  q n   – 1 – В определяет число В, получаемое заменой каждой цифры числа В на её дополнение до цифры  q  –1. Так,  245 10  + 245 10  = 245 + 754 = 999. В называется  обратным кодом  числа В;  q n - 1 - константой образования обратного кода
Из обратного кода легко получить дополнительный код: В + В =  q n - 1      q n  - В = В + 1 Дополнительный код  получается путём добавления единицы к младшему разряду  обратного кода . Следовательно, дополнения двоичных чисел можно находить, минуя операцию вычитания. В обратном коде, как и в прямом, существует отрицательный и положительный ноль. Только в дополнительном коде ноль имеет единственное представление. Для данной длины разрядной сетки дополнительным кодом представляется на единицу больше отрицательных чисел, чем положительных. Договоримся обозначать прямой, обратный и дополнительный коды числа А через  [ А пк ], [ А ок ], [ А дк ].
Пример.  Найти прямой, обратный и дополнительный коды чисел А = 34 и В = - 34. [ А пк ] =  0 0100010 2 , [ А ок ] =  0 0100010 2 , [ А дк ] =  0 0100010 2 . [ В пк ] =  1 0100010 2 , [ В ок ] =  1 1011101 2 , [ В дк ] =  1 1011110 2 . Алгоритм получения дополнительного кода отрицательного числа. Модуль числа представить прямым кодом в  k  двоичных разрядах. Значения всех бит  инвертировать : все ноли заменить на единицы, а единицы на ноли (таким образом получается  k -разрядный  обратный код  исходного числа); К полученному обратному коду, трактуемому как  k -разрядное неотрицательное двоичное число, прибавить единицу.
Примеры. 1. Дано отрицательное целое десятичное число   M=-20.  Представьте число в машинном коде в 16-разрядной сетке в двоичной и 16-ричной системах счисления. М=-20=-10100 2 [M пк ] 2 =1.000 0000 0001 0100 [M  ок ] 2 =1.111 1111 1110 1011 [M  дк ] 2 =1.111 1111 1110 1100 [M  дк ] 16 = FFEC
2. Дано целое число в виде 16-ричного двоичного машинного кода. Определите десятичное значение данного числа:  K a =FFD4 Первая цифра  F,  следовательно, число отрицательное и хранится в компьютере в форме дополнительного машинного кода. FFD4 16  =  [ 1.111 1111 1101 0100 дк ] [ 1.111 1111 1101  0011 ок ]  – обратный код числа [ K a ] ПК = [ 1.000 0000 0010 1100 пк ]  –  прямой двоичный код числа Тогда десятичное число а =  - 101100 = - (32+8+4) = -44 – десятичное число -0.000 0000 0000 0001
2 способ:   через 16-ричную систему счисления K a =FFD4 < 0,  следовательно число а хранится в компьютере в дополнительном коде. Перейдем от дополнительного к прямому машинному коду: Так   как  дополнительный код для отрицательного числа   равен дополнению его величины до числа, возникающего при переполнении разрядной сетки  q n , то  [ K a ] ПК = 10000 16  -  FFD4 16  = 002С 16 Тогда десятичное число а = - 2С 16 = - (2 . 16 1  + 12 . 16 0 ) = = - 44
Действия над машинными кодами целых чисел Дано : десятичные числа А= 34 и В = 30 Найти : А+В, А – В, В – А в двоичных машинных   кодах в 8 разрядной сетке. [A пк ] = [ А ок ] = [ А дк ] =  0.010 0010 2 [ - A пк ] =  1.010 0010 [ -А ок ] =  1.101 1101 [ -А дк ] = 1.101 1110 [-B пк ] = 1.001 1110 [ -В ок ] =  1.110 0001 [ -В дк ] =  1.110 0010 [ В пк ] = [ В ок ] = [ В дк ] =  0.001 1110 2
[ А + В ] ДК  = 0.010 0010 2  + 0.001 1110 2  = 01000000 2 А + В  = 64 [ А – В ] ДК   = 0.010 0010 2  + 1.110 0010 2  = 1 00000100  2 А – В  = 4 [ В – А ] ДК   = 0.001 1110 2  + 1.101 1110 2  = 11111100 2   <  0, следовательно, это дополнительный код, нужно перевести его в прямой: [ В – А ] ОК   = 11111011 2 [ В – А ] ПК   = 10000100 2 В – А  = - 4
Действия над машинными кодами чисел с фиксированной точкой (  в 16-ричной системе счисления) Дано : десятичные числа А= 34 и В = 30 Найти : А+В, А – В, В – А в 16-ричных машинных   кодах в 16 разрядной сетке. 1)  А=34=22 16 В=30=1 E 16 [K A ] пк =0022 16 [K B ] ПК =001E 16 K A  + K B  = 0022 + 001E = 0040 16    A + B =4 . 16 1  + 0 . 16 0  = 64 2) [K -B ] ПК = 8 01E 16    [K -B ] ДК =10000 16   - 1E 16  = FFE2 16 K A  + K B  = 0022 + FFE2 = 1 0004 А  -  В  = 4 . 16 0  = 4
Представление   вещественных   чисел   в   компьютере Знак мантиссы Знак порядка порядок мантисса Любое число в экспоненциальной (нормальной) форме представляется в виде: A =  m A .q   p Нормализованная мантисса:  <|m|<1 32- разрядная сетка: + - + -  1 q . . . 2  1  0 23 22 31 30 2928 …
В  современных компьютерах машинная форма числа хранит не сам порядок, а его смещенное значение –  характеристику числа . Это сделано для того, чтобы не хранить знак порядка и, значит, облегчить действия над порядками; увеличить диапазон представляемых чисел. Знак мантиссы характеристика мантисса Нормализованная мантисса всегда имеет целый разряд  0  и, следовательно, этот  0  в памяти компьютера не хранится, а только подразумевается. Это полезное техническое решение позволяет увеличить количество цифр и, следовательно, точность вычислений. . . . 2  1  0 23 22 31 30 2928 …
Примеры Найдем нормализованные мантиссы и характеристики этих чисел: а) А=32008,5=7 D08,8 16 =0,7D088 . 16 4 m A =0,7D088 p xA =4+40=44 16 =1000100 2 Знак - 0 Характеристика - 1000100 Дробная часть  мантиссы   - 0111 1101 0000 1000 1000 0000 Нормализованная мантисса -  1111 1010 0001 0001 0000 0000   Характеристика - 100 0011 K A = 0.100   00 11 . 1 111 101 0  000 1  000 1   0 000 0000 2  =  =  4 3 FA110 0 16  > 0 Вещественные числа представить как машинные коды чисел с плавающей точкой в 32-разрядной сетке в 16с / с: а) А=32008,5 б) В= - 32008,5  в) С=  15 г)  D= -  7 8 9 16
б)  B= -32008,5= -7D08,8 16 = - 0,7D088 . 16 4 m B = -0,7D088 p xB =4+40=44 16 =1000100 2 Знак -  1 Характеристика - 1000100 Дробная часть   мантиссы   - 0111 1101 0000 1000 1000 0000 Нормализованная мантисса - 1111 1010 0001 0001 0000 0000   Характеристика - 100 0011  K B = 1.1000011.1111 1010 0001 0001 0000 0000 2  =  =  C3 FA1100 16  < 0
в) С=  15  =F,E 16 m c =0,FE 16 p xA =40+1=41 16 Знак -  0 Характеристика - 100000 1 Дробная часть -  1 111 11 1 0 0000  0 000  0 000 0000 мантиссы K C = 0.1000001.1111 1110 0000 0000 0000 0000 2  =  = 4 1FE000 0 16  > 0 14 16 в)  D =  -  = - 0,9 16 m B =0,9 16 p xB =40+0=40 16 Знак -  1 Характеристика - 100000 0  Дробная часть -  100 1  000 0 0000  0 000  0 000 0000 мантиссы K D = 1.1000000.1001 0000 0000 0000 0000 0000 2  =  C 0900000 16   < 0 9 16
Действия над числами, представленными  в экспоненциальной форме Числа в экспоненциальной форме хранятся в памяти в прямом коде с нормализованными мантиссами. Сложение кодов производится путём сложения мантисс только при одинаковых порядках (характеристиках) слагаемых. За общий выбирается наибольший порядок. Алгоритмы операции алгебраического сложения после выравнивания характеристик зависят от знаков слагаемых. Результаты в прямом коде нормализуются.
Примеры Выполнить операцию сложения машинных кодов чисел  A  и  B  с плавающей точкой в 32-хразрядной сетке. В качестве ответа записать код результата (в 2-ой и 16-ой с / с) и соответствующее этому коду десятичное число K A  =43.F34000 K B  = C1.A13000 m A =00.F34 m B =00.A13 P Ax =43 P Bx =41 =>   P =2 => m B  =00.00A13 –  ПК _100.00000   00.00A13   FF.FF5ED m A +m B  = 00.F34   FF.FF5ED   100.F29ED > 0 => m A+B  = 00.F29ED
P A+B  = 3 A+B = 0.F29ED . 10 3  = F29,ED 16 = 15 . 16 2 + 2 . 16 1 +9 . 16 0 +14/16+13/256 =  3881  237/256 K  A+B  =0.100 0011.1111 0010 1001 1110 1101 0000 2 =  = 43.F29ED0

More Related Content

PPTX
представление чисел в памяти компьютера
PPTX
представление чисел в компьютере
PPTX
Кодирование информации
PPT
Презентация на тему: Подготовка к единому экзамену по информатике в 9 классе
PDF
S1 arithmetics amp-amp_logic
PPT
машинные коды
PDF
Использование GNU OCTAVE для инженерных и математических расчетов
PPT
9 1.1 - системы счисления
представление чисел в памяти компьютера
представление чисел в компьютере
Кодирование информации
Презентация на тему: Подготовка к единому экзамену по информатике в 9 классе
S1 arithmetics amp-amp_logic
машинные коды
Использование GNU OCTAVE для инженерных и математических расчетов
9 1.1 - системы счисления

What's hot (20)

PPTX
ЕГЭ_№18
PPT
Одномерные массивы целых чисел
PPT
Презентация на тему: Повторение курса информатики 7 класс
PPT
Системы счисления
PPTX
Use of eliptic curves for generating digital signature
PPT
Тема Системы счисления
PPTX
числа в компьютере1
PPTX
правила перевода чисел в позиционных системах счисления
PPTX
двоичная система счисления
PPTX
представление числовой информации
PPTX
2 лаба ит 7 1курс
PPT
20110919 computer graphics_galinsky_lecture02_raster
PPT
перевод чисел
PDF
Extended High-Level C-Compatible Memory Model with Limited Low-Level Pointer ...
PPT
производящие функции(продолжение)
PDF
ОПК № 4 – Представление действительных чисел
PPT
лекция 4 системы счисления информатика
PPT
Gia zadacha 14
PPT
Grafika Qbasic
PPTX
ЕГЭ_№12
ЕГЭ_№18
Одномерные массивы целых чисел
Презентация на тему: Повторение курса информатики 7 класс
Системы счисления
Use of eliptic curves for generating digital signature
Тема Системы счисления
числа в компьютере1
правила перевода чисел в позиционных системах счисления
двоичная система счисления
представление числовой информации
2 лаба ит 7 1курс
20110919 computer graphics_galinsky_lecture02_raster
перевод чисел
Extended High-Level C-Compatible Memory Model with Limited Low-Level Pointer ...
производящие функции(продолжение)
ОПК № 4 – Представление действительных чисел
лекция 4 системы счисления информатика
Gia zadacha 14
Grafika Qbasic
ЕГЭ_№12
Ad

Viewers also liked (9)

PDF
Index (At school with the Kings)
PDF
Depliant ascir italiano
PDF
Brochure ascir english
PDF
The handbook at school with the kings. educate and reeducate through the game...
PDF
Locandina di presentazione hd a scuola con i re
PDF
Authors index (at school with the Kings)
PDF
Learn BEM: CSS Naming Convention
PDF
SEO: Getting Personal
PDF
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Index (At school with the Kings)
Depliant ascir italiano
Brochure ascir english
The handbook at school with the kings. educate and reeducate through the game...
Locandina di presentazione hd a scuola con i re
Authors index (at school with the Kings)
Learn BEM: CSS Naming Convention
SEO: Getting Personal
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Ad

Similar to Kod chisl (20)

PPT
651650.ppt651650.ppt651650.ppt651650.ppt651650.ppt
PPT
Lk7.pptLk7.pptLk7.pptLk7.pptLk7.pptLk7.ppt
PPT
лекция 8 арифметические операции информатика
PPT
лекция 8 арифметические операции информатика
PPT
лекция 8 арифметические операции информатика
PPT
егэ часть а
DOC
11
PPT
лекция 6 представление информации в эвм информатика
PPTX
генераторы псевдослучайных последовательностей и шифрование методом гаммирования
DOC
лаб раб (реализация конеч автоматов)
PPT
PPT
2010 егэ часть А
PPT
Представление информации в компьютере
PPT
Числа в памяти компьютера
PPT
Системы счисления
PPT
Cистемы счисления
PPT
Презентация
PDF
Урок 11. Паттерн 3. Операции сдвига
PPT
Лекция 14 Матрицы
PPTX
ntroduction to Information System22.pptx
651650.ppt651650.ppt651650.ppt651650.ppt651650.ppt
Lk7.pptLk7.pptLk7.pptLk7.pptLk7.pptLk7.ppt
лекция 8 арифметические операции информатика
лекция 8 арифметические операции информатика
лекция 8 арифметические операции информатика
егэ часть а
11
лекция 6 представление информации в эвм информатика
генераторы псевдослучайных последовательностей и шифрование методом гаммирования
лаб раб (реализация конеч автоматов)
2010 егэ часть А
Представление информации в компьютере
Числа в памяти компьютера
Системы счисления
Cистемы счисления
Презентация
Урок 11. Паттерн 3. Операции сдвига
Лекция 14 Матрицы
ntroduction to Information System22.pptx

Kod chisl

  • 2. ПРЕДСТАВЛЕНИЕ ЦЕЛЫХ ЧИСЕЛ Так как любое целое число можно представить как вещественное, но с нулевой дробной частью, то можно было бы ограничиться представлением в компьютере вещественных чисел и реализацией арифметических действий над ними. Однако для эффективного использования памяти повышения скорости выполнения вычислений введения операции деления нацело с остатком ( в паскале DIV и MOD) Целые числа представляются специально для них предназначенными способами.
  • 3. Введение специальных способов представления целых чисел оправдано тем, что часто в задачах, решаемых с помощью компьютера, многие действия сводятся к операциям над целыми числами . Например, в задачах экономического характера , где данными служат количества акций, сотрудников, деталей, транспортных средств и т.д. для обозначения даты и времени ; для нумерации различных объектов : элементов массивов, записей в базах данных, машинных адресов и т.п.
  • 4. Целые числа в компьютере хранятся в форме с фиксированной запятой (точкой). Способы компьютерного представления целых чисел отличаются: количеством разрядов (8, 16, 32, 64-х разрядные сетки) наличием или отсутствием знакового разряда
  • 5. БЕЗЗНАКОВОЕ ПРЕДСТАВЛЕНИЕ ЦЕЛЫХ ЧИСЕЛ Все разряды ячейки отводятся под само число. 1. 8-разрядная сетка - разряды Пример : 52 10 = 110100 2 0 0 0 0 0 1 1 1 Диапазон представляемых чисел: А min =00000000 2 =0 10 A max =11111111=2 8 -1=255 10 Диапазон 0..255 В паскале – тип BYTE 7 6 5 4 3 2 1 0
  • 6. 2. 16- разрядная сетка - разряды Диапазон представляемых чисел: А min =00000000 00000000 2 =0 10 A max =11111111 11111111 =2 16 -1= 6 55 35 10 Диапазон 0..65535 В паскале – тип WORD 3. 32-разрядная сетка А min = 0 A max = 2 32 -1= 4 294 967 295 4. 64-разрядная сетка А min = 0 A max = 2 64 -1= 18 446 744 073 709 551 615 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0
  • 7. ПРЕДСТАВЛЕНИЕ ЦЕЛЫХ ЧИСЕЛ СО ЗНАКОМ Старший разряд разрядной сетки отводится под знак: 0 – для положительного числа 1 – для отрицательных чисел 1. 8-разрядная сетка - разряды Пример : 52 10 = 110100 2 0 Знак положительного числа Пример : -52 10 = - 110100 2 1 Знак отрицательного числа 7 6 5 4 3 2 1 0 0 1 1 0 1 0 0 7 6 5 4 3 2 1 0 0 1 1 0 1 0 0
  • 8. Диапазон представляемых чисел: A max =1111111=2 7 -1= 1 2 7 10 А min = - 128 10 В паскале – тип SHORTINT 2. 16- разрядная сетка 1 A max = =2 1 5 -1=32767 10 А min = - 32768 10 В паскале – тип INTEGER 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0
  • 9. Машинные коды чисел В компьютере с помощью применения специальных машинных кодов чисел все арифметические операции над числами сводятся к операциям арифметического сложения и сдвигу кодов.
  • 10. Прямой машинный код Представление числа в привычной форме «знак-величина», когда первый бит n -разрядного слова знаковый, а остальные n -1 битов представляют цифровые разряды числа в двоичной системе счисления, называется прямым кодом двоичного числа. Прямой код целого числа полностью совпадает с записью самого числа в разрядной сетке компьютера. Прямой код отрицательного целого числа отличается от прямого кода соответствующего положительного числа содержимым знакового разряда Пример. Прямой код чисел Х=11011 2 и Y =-11011 2 в восьмиразрядной сетке имеет вид:
  • 11. [X пк ] = 0 0011011 [Y пк ] = 1 0011011 В системе прямых кодов существует два различных представления ноля: 0 0000000 – положительный 0; 1 0000000 – отрицательный 0. Оба представления совершенно равноправны. Прямой код используется для хранения положительных и отрицательных чисел в запоминающих устройствах и для представления положительных чисел при выполнении операций в арифметических устройствах.
  • 12. Дополнительный и обратный коды Для упрощения конструкций арифметических устройств вычислительных машин все арифметические операции, как правило, сводятся к сложению (операция вычитания) или к сериям сложений и сдвигов (операции умножения и деления). Замена операции вычитания (алгебраического сложения) на арифметическое сложение в компьютере осуществляется с помощью обратного и дополнительного кодов. Дополнительный код положительного числа совпадает с этим числом.
  • 13. Объяснение сущности специальных кодов 000 999 001 002 499 498 497 500 501 502 998 997 … … - + Рассмотрим на примере реверсивного счётчика для 3-х разрядных десятичных чисел: 999 + 1 = 1 000 -переполнение разрядной сетки! 000 - 1 = -1 -по счётчику 999 – код –1 ! 000 a + (-a) = 0 005 + (-005) = 000 005 + 995 = 1 000 995 – дополнительный код числа -005 5 – 2 = 5 + (-2) = 5 + 998 = 1 003 7 – 5 = 7 + (-5) = 7 + 995 = 1 002 Если учесть, что единица переполнения теряется,то получаем правильные результаты Для устранения неоднозначности в кольце будем считать половину состояний (0-499) кодами нуля и положительных чисел, а оставщуюся половину (500-999) –кодами отрицательных чисел.
  • 14. Дополнительный код для отрицательного числа равен дополнению его величины до числа, возникающего при переполнении разрядной сетки q n , где q – основание системы счисления, n – число разрядов в разрядной сетке. q n - называют константой образования дополнительного кода Операцию С = А – В, где А и В – целые положительные числа в любой системе счисления, можно представить в виде: С = А – В = А + (-В) = А + (-В) + q n – q n = A +(q n - B)- q n А –первое слагаемое q n – В – дополнительный код числа –В (второго слагаемого) q n – константа, ликвидирующая единицу переполнения
  • 15. Пример . А=95 10 , В=43 10 , n =2. Найти С=А-В. [-B дк ] =100 – 43 = 57 С = 95 + [-B дк ] – 100 = 95 + 57 – 100 = 152 – 100 = 52 Единицу в старшем разряде суммы можно просто зачеркивать. Необходимо найти способ получения дополнения произвольного числа Х до q n без использования вычитания: С = А – В = А + (-В) = А + (-В) + q n – q n +1 -1 = A +(q n - 1- B)- q n + 1 Выражение q n – 1 – В определяет число В, получаемое заменой каждой цифры числа В на её дополнение до цифры q –1. Так, 245 10 + 245 10 = 245 + 754 = 999. В называется обратным кодом числа В; q n - 1 - константой образования обратного кода
  • 16. Из обратного кода легко получить дополнительный код: В + В = q n - 1  q n - В = В + 1 Дополнительный код получается путём добавления единицы к младшему разряду обратного кода . Следовательно, дополнения двоичных чисел можно находить, минуя операцию вычитания. В обратном коде, как и в прямом, существует отрицательный и положительный ноль. Только в дополнительном коде ноль имеет единственное представление. Для данной длины разрядной сетки дополнительным кодом представляется на единицу больше отрицательных чисел, чем положительных. Договоримся обозначать прямой, обратный и дополнительный коды числа А через [ А пк ], [ А ок ], [ А дк ].
  • 17. Пример. Найти прямой, обратный и дополнительный коды чисел А = 34 и В = - 34. [ А пк ] = 0 0100010 2 , [ А ок ] = 0 0100010 2 , [ А дк ] = 0 0100010 2 . [ В пк ] = 1 0100010 2 , [ В ок ] = 1 1011101 2 , [ В дк ] = 1 1011110 2 . Алгоритм получения дополнительного кода отрицательного числа. Модуль числа представить прямым кодом в k двоичных разрядах. Значения всех бит инвертировать : все ноли заменить на единицы, а единицы на ноли (таким образом получается k -разрядный обратный код исходного числа); К полученному обратному коду, трактуемому как k -разрядное неотрицательное двоичное число, прибавить единицу.
  • 18. Примеры. 1. Дано отрицательное целое десятичное число M=-20. Представьте число в машинном коде в 16-разрядной сетке в двоичной и 16-ричной системах счисления. М=-20=-10100 2 [M пк ] 2 =1.000 0000 0001 0100 [M ок ] 2 =1.111 1111 1110 1011 [M дк ] 2 =1.111 1111 1110 1100 [M дк ] 16 = FFEC
  • 19. 2. Дано целое число в виде 16-ричного двоичного машинного кода. Определите десятичное значение данного числа: K a =FFD4 Первая цифра F, следовательно, число отрицательное и хранится в компьютере в форме дополнительного машинного кода. FFD4 16 = [ 1.111 1111 1101 0100 дк ] [ 1.111 1111 1101 0011 ок ] – обратный код числа [ K a ] ПК = [ 1.000 0000 0010 1100 пк ] – прямой двоичный код числа Тогда десятичное число а = - 101100 = - (32+8+4) = -44 – десятичное число -0.000 0000 0000 0001
  • 20. 2 способ: через 16-ричную систему счисления K a =FFD4 < 0, следовательно число а хранится в компьютере в дополнительном коде. Перейдем от дополнительного к прямому машинному коду: Так как дополнительный код для отрицательного числа равен дополнению его величины до числа, возникающего при переполнении разрядной сетки q n , то [ K a ] ПК = 10000 16 - FFD4 16 = 002С 16 Тогда десятичное число а = - 2С 16 = - (2 . 16 1 + 12 . 16 0 ) = = - 44
  • 21. Действия над машинными кодами целых чисел Дано : десятичные числа А= 34 и В = 30 Найти : А+В, А – В, В – А в двоичных машинных кодах в 8 разрядной сетке. [A пк ] = [ А ок ] = [ А дк ] = 0.010 0010 2 [ - A пк ] = 1.010 0010 [ -А ок ] = 1.101 1101 [ -А дк ] = 1.101 1110 [-B пк ] = 1.001 1110 [ -В ок ] = 1.110 0001 [ -В дк ] = 1.110 0010 [ В пк ] = [ В ок ] = [ В дк ] = 0.001 1110 2
  • 22. [ А + В ] ДК = 0.010 0010 2 + 0.001 1110 2 = 01000000 2 А + В = 64 [ А – В ] ДК = 0.010 0010 2 + 1.110 0010 2 = 1 00000100 2 А – В = 4 [ В – А ] ДК = 0.001 1110 2 + 1.101 1110 2 = 11111100 2 < 0, следовательно, это дополнительный код, нужно перевести его в прямой: [ В – А ] ОК = 11111011 2 [ В – А ] ПК = 10000100 2 В – А = - 4
  • 23. Действия над машинными кодами чисел с фиксированной точкой ( в 16-ричной системе счисления) Дано : десятичные числа А= 34 и В = 30 Найти : А+В, А – В, В – А в 16-ричных машинных кодах в 16 разрядной сетке. 1) А=34=22 16 В=30=1 E 16 [K A ] пк =0022 16 [K B ] ПК =001E 16 K A + K B = 0022 + 001E = 0040 16  A + B =4 . 16 1 + 0 . 16 0 = 64 2) [K -B ] ПК = 8 01E 16 [K -B ] ДК =10000 16 - 1E 16 = FFE2 16 K A + K B = 0022 + FFE2 = 1 0004 А - В = 4 . 16 0 = 4
  • 24. Представление вещественных чисел в компьютере Знак мантиссы Знак порядка порядок мантисса Любое число в экспоненциальной (нормальной) форме представляется в виде: A = m A .q p Нормализованная мантисса: <|m|<1 32- разрядная сетка: + - + - 1 q . . . 2 1 0 23 22 31 30 2928 …
  • 25. В современных компьютерах машинная форма числа хранит не сам порядок, а его смещенное значение – характеристику числа . Это сделано для того, чтобы не хранить знак порядка и, значит, облегчить действия над порядками; увеличить диапазон представляемых чисел. Знак мантиссы характеристика мантисса Нормализованная мантисса всегда имеет целый разряд 0 и, следовательно, этот 0 в памяти компьютера не хранится, а только подразумевается. Это полезное техническое решение позволяет увеличить количество цифр и, следовательно, точность вычислений. . . . 2 1 0 23 22 31 30 2928 …
  • 26. Примеры Найдем нормализованные мантиссы и характеристики этих чисел: а) А=32008,5=7 D08,8 16 =0,7D088 . 16 4 m A =0,7D088 p xA =4+40=44 16 =1000100 2 Знак - 0 Характеристика - 1000100 Дробная часть мантиссы - 0111 1101 0000 1000 1000 0000 Нормализованная мантисса - 1111 1010 0001 0001 0000 0000  Характеристика - 100 0011 K A = 0.100 00 11 . 1 111 101 0 000 1 000 1 0 000 0000 2 = = 4 3 FA110 0 16 > 0 Вещественные числа представить как машинные коды чисел с плавающей точкой в 32-разрядной сетке в 16с / с: а) А=32008,5 б) В= - 32008,5 в) С= 15 г) D= - 7 8 9 16
  • 27. б) B= -32008,5= -7D08,8 16 = - 0,7D088 . 16 4 m B = -0,7D088 p xB =4+40=44 16 =1000100 2 Знак - 1 Характеристика - 1000100 Дробная часть мантиссы - 0111 1101 0000 1000 1000 0000 Нормализованная мантисса - 1111 1010 0001 0001 0000 0000  Характеристика - 100 0011 K B = 1.1000011.1111 1010 0001 0001 0000 0000 2 = = C3 FA1100 16 < 0
  • 28. в) С= 15 =F,E 16 m c =0,FE 16 p xA =40+1=41 16 Знак - 0 Характеристика - 100000 1 Дробная часть - 1 111 11 1 0 0000 0 000 0 000 0000 мантиссы K C = 0.1000001.1111 1110 0000 0000 0000 0000 2 = = 4 1FE000 0 16 > 0 14 16 в) D = - = - 0,9 16 m B =0,9 16 p xB =40+0=40 16 Знак - 1 Характеристика - 100000 0 Дробная часть - 100 1 000 0 0000 0 000 0 000 0000 мантиссы K D = 1.1000000.1001 0000 0000 0000 0000 0000 2 = C 0900000 16 < 0 9 16
  • 29. Действия над числами, представленными в экспоненциальной форме Числа в экспоненциальной форме хранятся в памяти в прямом коде с нормализованными мантиссами. Сложение кодов производится путём сложения мантисс только при одинаковых порядках (характеристиках) слагаемых. За общий выбирается наибольший порядок. Алгоритмы операции алгебраического сложения после выравнивания характеристик зависят от знаков слагаемых. Результаты в прямом коде нормализуются.
  • 30. Примеры Выполнить операцию сложения машинных кодов чисел A и B с плавающей точкой в 32-хразрядной сетке. В качестве ответа записать код результата (в 2-ой и 16-ой с / с) и соответствующее этому коду десятичное число K A =43.F34000 K B = C1.A13000 m A =00.F34 m B =00.A13 P Ax =43 P Bx =41 =>  P =2 => m B =00.00A13 – ПК _100.00000 00.00A13 FF.FF5ED m A +m B = 00.F34 FF.FF5ED 100.F29ED > 0 => m A+B = 00.F29ED
  • 31. P A+B = 3 A+B = 0.F29ED . 10 3 = F29,ED 16 = 15 . 16 2 + 2 . 16 1 +9 . 16 0 +14/16+13/256 = 3881 237/256 K A+B =0.100 0011.1111 0010 1001 1110 1101 0000 2 = = 43.F29ED0