Скачать презентацию Системы счисления представление чисел в компьютере Часть Скачать презентацию Системы счисления представление чисел в компьютере Часть

3b01e3471a559feadbd51f57b0304cfd.ppt

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

Системы счисления, представление чисел в компьютере Системы счисления, представление чисел в компьютере

Часть 1 Системы счисления Часть 1 Системы счисления

Эволюция систем счисления • Вавилонская – 60 -ричная (осталась для обозначения времени и углов) Эволюция систем счисления • Вавилонская – 60 -ричная (осталась для обозначения времени и углов) • Греческая – непозиционная, • Римская – непозиционная, I II IV V VI VIII IX X XI L C M • Двенадцатеричная – дюжина, гросс, масса; 1 фут=12 дюймов, 1 шиллинг = 12 пенсов • Прочие – 2 (Австралия, Полинезия), 5 (Африка), 20 (Кельты, Майя, Ацтеки) • Индийская, арабская – позиционная, десятичная

Какие бывают системы счисления? • Непозиционные • Позиционные Значение цифры зависит от ее положения Какие бывают системы счисления? • Непозиционные • Позиционные Значение цифры зависит от ее положения в числе ak*pk + ak-1*pk-1 + … + a 1*p 1 + a 0*p 0 • Однородные • Смешанные Более одного основания

Какие системы используются в ЭВМ? Аппаратура • Двоичная Программное обеспечение • Двоичная • Восьмеричная Какие системы используются в ЭВМ? Аппаратура • Двоичная Программное обеспечение • Двоичная • Восьмеричная • Шестнадцатеричная

10 2 8 16 3 00 0000 0 01 0001 1 02 0010 2 10 2 8 16 3 00 0000 0 01 0001 1 02 0010 2 2 2 03 0011 3 3 10 04 0100 4 4 11 05 0101 5 5 12 06 0110 6 6 20 07 0111 7 7 21 08 1000 10 8 22 09 1001 11 9 100 10 1010 12 A 101 11 1011 13 B 102 12 1100 14 C 110 13 1101 15 D 111 14 1110 16 E 112 15 1111 17 F 120

Двоичная система счисления Если , где то xd - запись числа x в d-ичной Двоичная система счисления Если , где то xd - запись числа x в d-ичной системе счисления содержит m+n+1 цифр. Целая часть содержит m+1 цифр, дробная n. Пример: 10910 = 1 * 102 + 0 * 101 + 9 * 100 = 109 11011012 = 1 * 26 + 1 * 25 + 0 * 24 + 1 * 23 + 1 * 22 + 0 * 21 + 1 * 20 = = 64 + 32 + 8 + 4 + 1 = 109 3. 1562510 = 3 * 100 + 1 * 10 -1 + 5 * 10 -2 + 6 * 10 -3 + 2 * 10 -4 + 5 * 10 -5 = = 3. 15625 11. 001012 = 1 * 21 + 1 * 20 + 0 * 2 -1 + 0 * 2 -2 + 1 * 2 -3 + 0 * 2 -4 + 1 * 2 -5 = = 2 + 1/8 + 1/32 = 3. 15625

Двоичная система счисления перевод из двоичной системы счисления в десятичную 1. представление числа в Двоичная система счисления перевод из двоичной системы счисления в десятичную 1. представление числа в виде суммы степеней двоек 2. вычисление суммы 1001. 01012= = 1*23 + 0*22 + 0*21 + 1*20 + + 0*2 -1 + 1*2 -2 + 0*2 -3 + 1*2 -4 = = 8 + 0 + 1/4 + 0 + 1/8 = 9. 37510

Двоичная система счисления перевод из десятичной системы счисления в двоичную 13410 134. 6562510 Последовательно Двоичная система счисления перевод из десятичной системы счисления в двоичную 13410 134. 6562510 Последовательно делим число на 2, сохраняем на каждой итерации остатки от деления на 2. Продолжаем пока число не равно 0. 1 а. Остаток от деления 134 на 2 равен 0, т. е. 134 % 2 = 0 1 b. 134 / 2 = 67 2 а. 67 % 2 = 1 2 b. 67 / 2 = 33 (целочисленное деление!) 3. 33 % 2 = 1, 33 / 2 = 16 4. 16 % 2 = 0, 16 / 2 = 8 5. 8 % 2 = 0, 8 / 2 = 4 6. 4 % 2 = 0, 4 / 2 = 2 7. 2 % 2 = 0, 2 / 2 = 1 8. 1 % 2 = 1, 1 / 2 = 0 Объединяем остатки в обратном порядке: 13410 = 100001102 0. 6562510 Последовательно сравниваем число с 1/2, если число меньше 1/2, то запоминает 0 и удваиваем, иначе запоминает 1, отнимает 1/2 и удваиваем. Продолжаем, пока не получим 0. 1. 0. 65625 >= 1/2, запоминаем 1, 2*(0. 65625 - 1/2) = 0. 3125 2. 0. 3125 < 1/2, запоминаем 0, 2*0. 3125 = 0. 625 3. 0. 625 >= 1/2, запоминаем 1, 2*(0. 625 – 1/2) = 0. 25 4. 0. 25 < 1/2, запоминаем 0, 2*(0. 25 – 1/2) = 0. 5 5. 0. 5 >= 1/2, запоминаем 1, 2*(0. 5 – 1/2) = 0. 0 Объединяем запомненные цифры в прямом порядке 0. 6562510 = 101012 10000110. 101012

Двоичная система счисления перевод из десятичной системы счисления в двоичную Десятичная дробь 0. 2 Двоичная система счисления перевод из десятичной системы счисления в двоичную Десятичная дробь 0. 2 в двоичном представлении бесконечна и периодична. 1. 0. 2 < 1/2, запоминаем 0 2*0. 2 = 0. 4 2. 0. 4 < 1/2, запоминаем 0 2*0. 4 = 0. 8 3. 0. 8 >= 1/2, запоминаем 1 2*(0. 8 -1/2) = 0. 6 4. 0. 6 >= 1/2, запоминаем 1 2*(0. 6 -1/2) = 0. 2 … Таким образом, 0. 210 = 0. 00110011… = 0. (0011)2

Часть 2 Представление чисел в компьютере Часть 2 Представление чисел в компьютере

Представление беззнаковых целых чисел Для представления беззнакового (т. е. неотрицательного) целого числа его необходимо Представление беззнаковых целых чисел Для представления беззнакового (т. е. неотрицательного) целого числа его необходимо перевести в двоичное представление и записать полученную последовательность 0 и 1 (битов) в соответствующие ячейки памяти. Например, 12310 = 11110112 Поэтому представление числа 123 с помощью однобайтового типа данных (unsigned char в C) будет следующим: 0 7 0 1 1 Однобайтовый тип данных позволяет представлять числа от 0 до 28 -1: 0 0 0 0 0 1 1 1 28 -1 = 255 1 1

Представление беззнаковых целых чисел Тип данных Минимальное представимое число Максимальное представимое число Однобайтовый (unsigned Представление беззнаковых целых чисел Тип данных Минимальное представимое число Максимальное представимое число Однобайтовый (unsigned char) Четырехбайтовый (unsigned int) 0 28 -1 0 232 -1 Восьмибайтовый (unsigned long) 0 264 -1

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

Представление знаковых целых чисел Знаковые целые числа в памяти компьютера представляются с помощью дополнительного Представление знаковых целых чисел Знаковые целые числа в памяти компьютера представляются с помощью дополнительного кода. Вычисление дополнительного кода числа x: 1. Если x ≥ 0, то дополнительный код x совпадает с его двоичным представлением 2. Если x < 0, то для получение дополнительного кода необходимо: А. найди двоичное представление модуля x B. Изменить все биты в двоичном представлении x на противоположные С. Прибавить единицу Например, представим число -84 в знаковом однобайтовом типе (тип char в C): А. |-8410| = 8410 = 26 + 24 + 22 = 010101002 B. Инвертируем все биты: 010101002 → 101010112 С. Прибавляем единицу: 101010112 + 12 = 101011002 0 7 1 0 1 1 0 0

Представление знаковых целых чисел Однобайтовый знаковый тип данных (char) позволяет представлять числа от -27 Представление знаковых целых чисел Однобайтовый знаковый тип данных (char) позволяет представлять числа от -27 до 27 -1 (от -128 до 127). 27 -1 0 1 1 1 1 27 -2 0 1 1 1 0 1 0 0 0 0 0 -1 1 1 1 1 -2 1 1 1 1 0 -127 1 0 0 0 1 -128 1 0 0 0 0 … …

Представление знаковых целых чисел Тип данных Минимальное представимое число Максимальное представимое число Однобайтовый (char) Представление знаковых целых чисел Тип данных Минимальное представимое число Максимальное представимое число Однобайтовый (char) -27 27 -1 Четырехбайтовый (int) -231 231 -1 Восьмибайтовый (long) -263 263 -1

Представление вещественных чисел По стандарту IEEE 754 вещественное число А представляется в виде: , Представление вещественных чисел По стандарту IEEE 754 вещественное число А представляется в виде: , S – однобитовый знак числа, S=0 для положительных чисел, S=1 для отрицательных; M – нормализованная мантисса E – показатель степени двойки Тип Количество битов в мантиссе Количество битов в экспоненте float (32 бит) 23 8 double (64 бит) 52 11

Представление вещественных чисел Пример представления числа (0. 15625)10=(0. 00101)2 в типе float. Необходимо представить Представление вещественных чисел Пример представления числа (0. 15625)10=(0. 00101)2 в типе float. Необходимо представить число в виде произведения где. 0. 15625 = 1. 25 · 2 -3, таким образом, S = 0, M = 1. 2510, E = -310. 15625 > 0, поэтому sign = 0. 2. Вычислим двоичное представление мантиссы M = 1. 2510 = 1. 012. В силу условия нормализованности мантиссы (1 ≤ M < 2) мантисса всегда начинается в единицы, что позволяет записывать только дробную ее часть. Поэтому fraction = 012. 3. Показатель степени вычисляется следующим образом: exponent = E + (2 q-1 – 1)10, где q – количество битов, выделяемых под порядок (в случае float q=8). Таким образом, exponent = -310 + (28 -1 – 1)10 = -310 + 12710 = 12410 = 11111002 В результате, число 0. 15625 представимо в следующем виде: sign exponent (8 битов) fraction (23 бита) 0011111000000000000 23 31 0

Представление вещественных чисел Для стандартных типов данных имеет место следующие значения: Тип Минимальный десятичный Представление вещественных чисел Для стандартных типов данных имеет место следующие значения: Тип Минимальный десятичный порядок Максимальный десятичный порядок Число значащих десятичных знаков float -45* 38 7 double -323 308 15 * Стоит отметить, что мантисса может быть ненормализованной, что и приводит к таким значениям минимального порядка. Под мантиссу в float отводится 23 бита + 1 неявный, т. о. , получается 24 значащих двоичных знака или 7 десятичных знаков в силу того, что 224 ≈ 107. Максимальный двоичный порядок 27 -1, поэтому максимальный десятичный порядок равен 38, т. к. 2^(27 -1) ≈ 1038.