Представление числовой информации в компьютере.pptx
- Количество слайдов: 33
Представление числовой информации в компьютере Работу выполнил: Сыроватко Василий 15 КБ(с)РЗПО Руководитель: Надточий Надежда Сулеймановна, старший преподаватель кафедры компьютерной безопасности и математического обеспечения информационных систем
Форматы представления числовых данных в компьютере Формат с фиксированной точкой Формат с плавающей точкой
Форматы целых чисел Беззнаковое представление Знаковое представление
Беззнаковое представление формата с фиксированной точкой • Прямой код - запись целого числа в двоичной системе счисления. • Точка, определяющая целую часть, считается фиксированной справа от крайнего правого разряда.
Диапазон значений беззнаковых чисел • В n-разрядном поле могут быть представлены любые целые числа из диапазона [0; 2ⁿ-1].
Диапазоны представления беззнаковых целых чисел Название Длина, байт Длина диапазона byte, unsigned 1 char 0… 2⁸-1 0… 255 word, unsigned int 2 0… 2¹⁶-1 0… 65 535 unsigned long 4 0… 2³²-1 0… 4 294 967 295
Получение беззнакового кода целого числа 1) Перевести заданное число в двоичную систему счисления 2) Записать полученный код в выделенное для него поле Пример: 77₁₀=1001101₂ Разрядность поля Двоичная запись кода Шестнадцатеричная запись кода Однобайтовое поле 0100 1101₂ 4 D₁₆ Двухбайтовое поле 0000 0100 1101₂ 00 4 D₁₆ Четырехбайтовое поле 0000 0000 0100 1101₂ 00 00 00 4 D₁₆
Получение беззнакового кода целого числа • Поле 1 байт 2: 16:
Выбор длины поля • При выборе длины поля самым важным фактором является значение числа, код которого должен быть записан в этом поле. • Пример: 497₁₀ = 1 1111 0001₂ > 1111₂ = 255₁₀ max= 1 1 1 1
Знаковое представление формата с фиксированной точкой 1) Закодировать знак числа двоичной цифрой и выделить под него один из разрядов поля 2) В остальные разряды записать модуль, кодируя его, к примеру, с помощью прямого двоичного кода
Система кодирования со знаком • Код знака принято размещать в самом левом разряде поля и называть его знаковым битом. • «+» кодируется нулем, а «-» – единицей.
Разрядная сетка системы кодирования со знаком - код знака числа Поле 1 байт - значащие 0 цифры модуля … 7 6 5 4 3 2 1 0 k k-1 5 4 … 1 Поле 2 байта 15 14 13 12 11 10 9 8 7 6 3 2 1 0 Поле 4 байта 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Диапазон значений знаковых чисел • В поле могут быть закодированы любые целые числа, удовлетворяющие условию |x|≤ 2ⁿ⁻¹-1, то есть все целые числа из диапазона [1 -2ⁿ⁻¹; 2ⁿ⁻¹-1].
Последствия представления модуля с помощью прямого двоичного кода 1. Неоднозначность нуля: • 0₁₀= 0000₂ (+ 0₁₀); • 0₁₀= 1000 0000₂ (- 0₁₀); 2. Неоднозначность результатов арифметических операций: • -4₁₀ + 4₁₀ = 0₁₀; • 0000 0100₂ + 1000 0100₂ = 1000₂ = -8₁₀;
Дополнительный код • Полученный код должен удовлетворять правилам вычитания и сложения в двоичной системе счисления. • Построенный код называется дополнительным, с дополнением до двух или комплементарным.
Дополнительный код • • 0₁₀= 0000₂ +1₂= 0001₂ +2₁₀= 0001₂ +1₂= 0010₂ Так как +7₁₀= 0111₂, то +8₁₀= 0111₂ +1₂ = 1000₂, что приведет к занятию знакового бита старшей цифрой кода модуля. -1₁₀ = 0000₂ - 1₂ = 1111₂ - 2₁₀= 1111₂ -1₂ = 1110₂ - 8₁₀= 1000₂ - 9₁₀= 1000₂ -1₂ = 0111₂= +7₁₀
Дополнительный код • Способ кодирования с помощью дополнительного кода устраняет все отмеченные ранее недостатки: • 0100₂ (+4₁₀)+1100₂(-4₁₀)= 10000₂= 0000₂ • Исчезла неоднозначность нуля: • 0₁₀= 0000₂ • - 8₁₀= 1000₂ • Это привело к тому, что диапазоны представления положительных и отрицательных чисел стали несимметричными.
Несимметричность диапазона - 8₁₀ - 7₁₀ - 6₁₀ - 5₁₀ - 4₁₀ - 3₁₀ - 2₁₀ -1₁₀ 0₁₀ +1₁₀ +2₁₀ +3₁₀ +4₁₀ +5₁₀ +6₁₀ +7₁₀
Диапазон значений знаковых чисел при использовании дополнительного кода • В поле длиной n бит можно закодировать целые числа в диапазоне [-2ⁿ⁻¹; 2ⁿ⁻¹-1]
Диапазоны представления знаковых целых чисел Название Длина, байт Длина диапазона shortint 1 -2⁷… 2⁷-1 integer 2 -2¹⁵… 2¹⁵-1 -32 768… 32 767 longint 4 -2³¹… 2³¹-1 - 2 147 483 648… 2 147 483 647 -128… 127
Сравнение диапазонов беззнакового и знакового кодирования в однобайтовом поле
Способы получения дополнительного кода 1. 2. 0 1 … 1 1 0 1 n n-1 … 4 3 2 1 1 0 … 0 0 1 0 n n-1 … 4 3 2 1 Полученный таким образом код называется обратным, с дополнением до единицы или с поразрядным дополнением. 3. 1 0 … 0 0 1 1 n n-1 … 4 3 2 1
Выбор длины поля • Прямой код =100₂ Обратный код = 011₂ Дополнительный код = 100₂ • Прямой код =0100₂ Обратный код = 1011₂ Дополнительный код = 1100₂
Второй способ • D=M–P • P – прямой код • M = 2ⁿ, где n – длина поля в битах • D – дополнительный код
Пример получения дополнительного кода • n=8 • M =2⁸=1 0000₂ = 100₁₆ • P = 100 1101₂ = 4 D₁₆ • D=M–P • D₂= 1 0000₂ - 0100 1101₂ = 1011 0011₂ • D₁₆= 100₁₆ - 4 D₁₆ = B 3₁₆
Получение знакового кода заданного числа 1) Перевести модуль данного числа в двоичную систему счисления. 2) Выбрать поле, длина которого обеспечивает запись знакового кода рассматриваемого числа. 3) Если число положительное, записать полученный код в выбранное поле. 4) Если число отрицательное, получить в выбранном поле его дополнительный код.
Получение знакового кода заданного числа Пример: +77₁₀ 1) +77₁₀ = 100 1101₂ 2) Однобайтовое: 0100 1101₂ Двухбайтовое: 0000 0100 1101₂ Четырехбайтовое: 0000 0000 0100 1101₂ 3) Машинный код: 0100 1101₂
Получение знакового кода заданного числа Пример: +155₁₀ 1) +155₁₀ = 1001 1011₂ 2) Однобайтовое: 1001 1011₂ = -101₁₀ Двухбайтовое: 0000 1001 1011₂ = +155₁₀ Четырехбайтовое: 0000 0000 1001 1011₂ = +155₁₀ 3) Машинный код: 0000 1001 1011₂
Получение знакового кода заданного числа Пример: -77₁₀ 1) -77₁₀ = 100 1101₂ = 4 D₁₆ 2) Однобайтовое: 100₁₆ - 4 D₁₆ = B 3₁₆ = 1011 0011₂ Двухбайтовое: 10000₁₆ - 4 D₁₆ = FFB 3₁₆ Четырехбайтовое: 10000₁₆ - 4 D₁₆ = FFFFFFB 3₁₆ 3) Машинный код: 1011 0011₂
Правило размножения знака • При переходе к полю большей длины свободные слева биты заполняются кодом знакового бита 0₂ (0₁₆) для положительных и 1₂ (F₁₆) для отрицательных. • При переходе к полям меньшей длины отбрасываются две, четыре или шесть цифр 0₁₆ или F₁₆ или же соответствующее количество тетрад 0000₂ или 1111₂.
Правило размножения знака Коды числа в стандартных +77₁₀ полях Поле 1 байт Поле 2 байта Поле 4 байта 0100 1101₂ 4 D₁₆ 0000 0100 1101₂ 00 4 D₁₆ 0000 0000 0100 1101₂ 00 00 00 4 D₁₆ Коды числа в стандартных -77₁₀ полях Поле 1 байт 1011 0011₂ B 3₁₆ Поле 2 байта 1111 1011 0011₂ FF B 3₁₆ Поле 4 байта 1111 1111 1011 0011₂ FF FF FF B 3₁₆
Список используемой литературы • А. Н. Степанов – Архитектура вычислительных систем и компьютерных сетей (Учебное пособие. Издательство: Питер, 2007) – стр. 34 -43
Работу выполнил: Сыроватко Василий 15 КБ(с)РЗПО Руководитель: Надточий Надежда Сулеймановна, старший преподаватель кафедры компьютерной безопасности и математического обеспечения информационных систем
Представление числовой информации в компьютере.pptx