Скачать презентацию Лекция 6 Представление целых отрицательных чисел в Скачать презентацию Лекция 6 Представление целых отрицательных чисел в

представление информации в эвм информатика.ppt

  • Количество слайдов: 23

Лекция № 6. Представление целых отрицательных чисел в ЭВМ 1 Лекция № 6. Представление целых отрицательных чисел в ЭВМ 1

Представление целых отрицательных чисел в ЭВМ Формат хранения целых чисел со знаком аналогичен формату Представление целых отрицательных чисел в ЭВМ Формат хранения целых чисел со знаком аналогичен формату хранения двоичного числа без знака, за исключением того, что старший разряд числа отводится для хранения знака числа: s. При хранении положительного числа знаковый разряд принимает значение 0, а при хранении. отрицательного числа равен 1. 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 s b b b b Целое число со знаком может занимать в памяти один, два, четыре и восемь байтов. 2

Дополнительный код числа Для хранения отрицательных целых чисел используется дополнительный код числа. Правило № Дополнительный код числа Для хранения отрицательных целых чисел используется дополнительный код числа. Правило № 6. Чтобы найти представление m разрядного двоичного целого отрицательного числа в дополнительном коде с количеством двоичных разрядов n (n>m) необходимо выполнить следующие действия: 1. 1. Дополнить число слева n-m нулями до разрядности n. 2. 2. Найти обратный код полученного числа. При этом двоичные нули исходного числа заменяются двоичными единицами, а двоичные единицы двоичными нулями. 3. 3. К полученному обратному коду прибавить единицу. 3

Пример нахождения дополнительного кода числа Найдем шестиразрядный дополнительный код числа 1002. 1. Дополним исходное Пример нахождения дополнительного кода числа Найдем шестиразрядный дополнительный код числа 1002. 1. Дополним исходное число до необходимой разрядности: 100 000100. 2. Найдем обратный код полученного числа: 000100 111011 3. Прибавим единицу к полученному коду: 111011 + 1 =111100. 4

Дополнительный код чисел вида: -2 n-1 Заметим, что отрицательные целые n разрядные числа вида: Дополнительный код чисел вида: -2 n-1 Заметим, что отрицательные целые n разрядные числа вида: 2 n 1 можно записать в дополнительном коде с n разрядами. Пример Найдем 6 разрядный дополнительный код 6 разрядного числа 25: 1. Дополнять исходное число 25 = 1000002 до разрядности равной 6 в этом случае нет необходимости. Число 25 уже шестиразрядное. 2. Найдем значения обратного кода: 100000 011111 3. Прибавим единицу к полученному числу: 011111 + 1 =100000. Таким образом, дополнительный код числа 25 равен 100000. 5

Получение прямого кода числа по его дополнительному коду Правило № 7. Чтобы записать прямой Получение прямого кода числа по его дополнительному коду Правило № 7. Чтобы записать прямой код отрицательного числа, представленного в n разрядном дополнительном коде, необходимо: 1. Найти обратный код полученного числа. Для этого необходимо заменить в разрядах di (i=0, n 1) нули единицами, а единицы нулями. 2. К полученному числу прибавить единицу. При этом будет получена абсолютная величина искомого отрицательного числа в двоичной системе счисления. 3. Слева приписать к полученной абсолютной величине знак минус. 6

Пример восстановления прямого кода числа (проверка предыдущего примера) 1 Найдем обратный код дополнительного кода Пример восстановления прямого кода числа (проверка предыдущего примера) 1 Найдем обратный код дополнительного кода числа: 100000 011111 2 К полученному числу прибавим единицу: 0111112 + 12 = 1000002. 3 Слева к полученному числу припишем знак минус: 1000002. Полученный результат совпал с исходным числом: 1000002 = 25. 7

Минимальные и максимальные значения чисел Значения минимальных отрицательных и максимальных положительных целых чисел, которые Минимальные и максимальные значения чисел Значения минимальных отрицательных и максимальных положительных целых чисел, которые можно хранить в словах размера 1, 2, 4 и 8 байтов, показаны в таблице. При заполнении таблицы использовались выражения для определения минимального отрицательного и максимального положительного числа: Lmin = 28 l 1, Lmax = 28 l 1 1, где Lmin минимальное целое отрицательное число, представленное в дополнительном коде; Lmax максимальное целое положительное число, представленное в прямом коде; l размер слова в байтах. 8

Значения минимальных и максимальных чисел Размер слова в байтах Размер слова в битах Значение Значения минимальных и максимальных чисел Размер слова в байтах Размер слова в битах Значение минимального числа Значение максимального числа 1 8 (27 )= 128 (27 1)= 127 2 16 (215 ) = 32768 (215 1) =32767 4 32 (231 ) = 2147483648 (231 1) =2147483647 8 64 (263 ) < 16 1018 (263 1) >16 1018 9

Представление дробных чисел в ЭВМ З н Порядок 1 байт Мантисса 2 байт 3 Представление дробных чисел в ЭВМ З н Порядок 1 байт Мантисса 2 байт 3 байт 4 байт 7 6 5 4 3 2 1 0 З b b b b b b b b н 10

Представление десятичного дробного числа в коротком формате Этапы: 1. Перевод числа в двоичную систему Представление десятичного дробного числа в коротком формате Этапы: 1. Перевод числа в двоичную систему счисления 2. Округление числа 3. Нормализация числа 4. Получение смещенного порядка 5. Запись числа в память 11

1. Перевод числа в двоичную систему счисления. Определение точности перевода неправильной дроби Если число 1. Перевод числа в двоичную систему счисления. Определение точности перевода неправильной дроби Если число по абсолютной величине больше или равно единице, то количество дробных разрядов (точность перевода) числа можно определить следующим образом: m + n + 1 = 25; m = 24 – n, где n номер старшего разряда числа, m количество разрядов дробной части искомого числа. Искомое число должно содержать 25 значащих разрядов. 12

Определение точности перевода правильной дроби Если число по абсолютной величине меньше единицы, то при Определение точности перевода правильной дроби Если число по абсолютной величине меньше единицы, то при переводе правильной десятичной дроби необходимо определить номер первого разряда дробной части искомого двоичного числа, в котором будет располагаться двоичная единица. Пусть номер найденного разряда –j. Обозначим через l количество разрядов с двоичными нулями, расположенными между разделительной точкой и разрядом с номером –j, l = j – 1. Тогда точность перевода равна: m = l + 25. Разряды с номерами небольшими, чем –j назовем значащими разрядами числа. Их количество должно быть равно 25. 13

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

3. Нормализация числа Для этого необходимо перемещать разделительную точку таким образом, чтобы искомое число, 3. Нормализация числа Для этого необходимо перемещать разделительную точку таким образом, чтобы искомое число, полученное в результате перемещения точки, располагалось на полусегменте [1, 2) (x - искомое число, 1<= x 2). Первоначально абсолютный порядок числа принимается равный нулю. Если число оказывается больше или равно двух, то разделительная точка перемещается влево. При этом значение порядка увеличивается на величину равную количеству разрядов, на которые 15 переместилась точка.

3. Нормализация числа Если исходное число меньше единицы, то разделительная точка перемещается вправо. При 3. Нормализация числа Если исходное число меньше единицы, то разделительная точка перемещается вправо. При этом значение порядка уменьшается на величину, равную количеству разрядов, на которое переместилась разделительная точка. Полученный порядок числа называется абсолютным порядком числа. Целая часть числа, расположенного на полусегменте [1, 2), равна единице. Поэтому при хранении числа в памяти нет необходимости в хранении целой части числа. Целая часть отбрасывается. В этом случае остается мантисса (дробная часть числа), содержащая 23 значащих разрядов. 16

4. Определение смещенного порядка числа . Для этого необходимо к абсолютному порядку, полученному на 4. Определение смещенного порядка числа . Для этого необходимо к абсолютному порядку, полученному на шаге 3 прибавить 127 (сместить порядок на 127). В результате получим смещенный порядок числа. Полученное десятичное число необходимо перевести в двоичную систему счисления и представить в форме 8 - разрядного целого неотрицательного двоичного числа с фиксированной точкой без знака. Смещенный порядок – неотрицательное число. Максимальное значение абсолютного порядка равно: 128. 17

5. Запись числа в память Дробное число в коротком формате представляется в памяти в 5. Запись числа в память Дробное число в коротком формате представляется в памяти в форме нормализованного числа, занимающего 4 байта. Старший бит первого байта (бит с номером 7) является знаковым битом. Если число неотрицательное, то знак числа равен нулю. Если число отрицательное, то знак числа равен единице. Смещенный порядок числа занимает 8 бит (1 байт) и расположен с нулевого по 6 -ой бит первого байта и в 7 -ом бите второго байта. Мантисса числа занимает 23 бита и располагается во втором байте с нулевого по 6 -ой бит и полностью 18 занимает второй и третий байты числа.

Представим дробное число 43. 13 в коротком формате хранения Переведем число 43. 13 из Представим дробное число 43. 13 в коротком формате хранения Переведем число 43. 13 из десятичной системы счисления в двоичную систему счисления. Переводим целую часть числа: 43 : 2 = 21 (1), 21 ≥ 2 21 : 2 = 10 (1), 10 ≥ 2 10 : 2 = 5 (0), 5 ≥ 2 5 : 2 = 2 (1), 2 ≥ 2 2 : 2 = 1 (0), 1 ≤ 2 Целая часть равна: 4310 = 1010112. n = 5. 19

Перевод дробной части числа. Количество дробных разрядов числа определяем по формуле m = 24 Перевод дробной части числа. Количество дробных разрядов числа определяем по формуле m = 24 – n, где m – количество дробных разрядов числа, n – номер старшего разряда целой части числа m = 24 – 5 = 19. Дробная часть равна: 0. 1310 ≈ 0. 00100001010001111012 Таким образом, 43. 1310 ≈ 101011. 00100001010001111012. 20

Округление К полученному числу прибавим двоичную единицу, по весу равную единице младшего разряда: 101011. Округление К полученному числу прибавим двоичную единицу, по весу равную единице младшего разряда: 101011. 0010000101000111101 + 0. 0000000001 101011. 0010000101000111110 Отбросим младший разряд суммы равный нулю. В результате будет получено число: 101011. 0010000101000111112 21

Нормализация числа Нормализуем число, перемещаем точку на пять разрядов вправо: 101011. 0010000101000111112 = 1. Нормализация числа Нормализуем число, перемещаем точку на пять разрядов вправо: 101011. 0010000101000111112 = 1. 010110010000101000111112 2510 Отбросим старший разряд: 1. 010110010000101000111112 0. 010110010000101000111112 22

Определение смещенного порядка Определим двоичный код смещенного порядка: 510 + 12710 = 13210 = Определение смещенного порядка Определим двоичный код смещенного порядка: 510 + 12710 = 13210 = 100001002. Запись числа в память 7 6 5 4 3 2 1 0 0 1 0 0 0 1 0 1 1 0 0 0 0 1 1 1 4 2 Знак Смещенный порядок 2 с 8 5 Мантисса 1 f 23