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

Lektsiya_3-2015_KO.ppt

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

Представление чисел в компьютерных системах. Лекция 3 Представление чисел в компьютерных системах. Лекция 3

ТЕМЫ 1. 2. 3. 4. Кодирование и декодирование информации. Представление чисел в компьютере. Арифметические ТЕМЫ 1. 2. 3. 4. Кодирование и декодирование информации. Представление чисел в компьютере. Арифметические действия над целыми числами. Арифметические операции над числами с плавающей точкой.

 1. Кодирование и декодирование информации 1. Кодирование и декодирование информации

Основные способы передачи информации в социотехнических системах Сигналы Знаки -свет маяка -наскальная роспись -живая Основные способы передачи информации в социотехнических системах Сигналы Знаки -свет маяка -наскальная роспись -живая музыка, -дорожные знаки -жесты -текст в книге -пение птиц -азбука Морзе Наполнение знаков и сигналов смыслом делает их СИМВОЛАМИ

СИГНАЛЫ Аналоговые (непрерывные) Непрерывно изменяются по амплитуде и во времени телефон, радио, телевидение чаще СИГНАЛЫ Аналоговые (непрерывные) Непрерывно изменяются по амплитуде и во времени телефон, радио, телевидение чаще встречается в жизни Дискретные (цифровые) Принимают конечное число значений текстовая, символьная информация легко обрабатывать

Кодирование и декодирование Для обмена информацией с другими людьми человек использует естественные языки. Наряду Кодирование и декодирование Для обмена информацией с другими людьми человек использует естественные языки. Наряду с естественными языками были разработаны формальные языки для профессионального применения их в какой-либо сфере. Представление информации с помощью какого-либо языка часто называют кодированием. Код — набор символов (условных обозначений) для представления информации. Код — система условных знаков (символов) для передачи, обработки и хранения информации(со общения). Кодирование — процесс представления информации (сообщения) в виде кода. Все множество символов, используемых для кодирования, называется алфавитом кодирования. Например, в памяти компьютера любая информация кодируется с помощью двоичного алфавита, содержащего всего два символа: 0 и 1. Декодирование- процесс обратного преобразования кода к форме исходной символьной системы, т. е. получение исходного сообщения. Например: перевод с азбуки Морзе в письменный текст на русском языке. В более широком смысле декодирование — это процесс восстановления содержания закодированного сообщения. При таком подходе процесс записи текста с помощью русского алфавита можно рассматривать в качестве кодирования, а его чтение — это декодирование.

Способы кодирования информации Для кодирования одной и той же информации могут быть использованы разные Способы кодирования информации Для кодирования одной и той же информации могут быть использованы разные способы; их выбор зависит от ряда обстоятельств: l цели кодирования, l условий, l имеющихся средств. Если надо записать текст в темпе речи — используем стенографию; если надо передать текст за границу — используем английский алфавит; если надо представить текст в виде, понятном для грамотного русского человека, — записываем его по правилам грамматики русского языка. «Здравствуй, Саша!» «Zdravstvuy, Sasha!»

Способы кодирования информации Выбор способа кодирования информации может быть связан с предполагаемым способом ее Способы кодирования информации Выбор способа кодирования информации может быть связан с предполагаемым способом ее обработки. Покажем это на примере представления чисел — количественной информации. Используя русский алфавит, можно записать число "тридцать пять". Используя же алфавит арабской десятичной системы счисления, пишем « 35» . Второй способ не только короче первого, но и удобнее для выполнения вычислений. Какая запись удобнее для выполнения расчетов: "тридцать пять умножить на сто двадцать семь" или "35 х 127"? Очевидно — вторая.

Телеграфный аппарат Бодо Равномерный телеграфный код был изобретен французом Жаном Морисом Бодо в конце Телеграфный аппарат Бодо Равномерный телеграфный код был изобретен французом Жаном Морисом Бодо в конце XIX века. В нем использовалось всего два разных вида сигналов. Не важно, как их назвать: точка и тире, плюс и минус, ноль и единица. Это два отличающихся друг от друга электрических сигнала. Длина кода всех символов одинаковая и равна пяти. В таком случае не возникает проблемы отделения букв друг от друга: каждая пятерка сигналов — это знак текста. Поэтому пропуск не нужен. Код называется равномерным, если длина кода всех символов равна. Код Бодо — это первый в истории техники способ двоичного кодирования, информации. Благодаря этой идее удалось создать буквопечатающий телеграфный аппарат, имеющий вид пишущей машинки. Нажатие на клавишу с определенной буквой вырабатывает соответствующий пятиимпульсный сигнал, который передаетсяпо линии связи. В честь Бодо была названа единица скорости передачи информации — бод. В современных компьютерах для кодирования текста также применяется равномерный двоичный код. Telex Это интересно: Отель, не имеющий телекса, не может иметь рейтинг "пять звезд".

Двоичное кодирование в компьютере Вся информация, которую обрабатывает компьютер должна быть представлена двоичным кодом Двоичное кодирование в компьютере Вся информация, которую обрабатывает компьютер должна быть представлена двоичным кодом с помощью двух цифр: 0 и 1. Эти два символа принято называть двоичными цифрами или битами. С помощью двух цифр 0 и 1 можно закодировать любое сообщение. Это явилось причиной того, что в компьютере обязательно должно быть организованно два важных процесса: кодирование и декодирование. Кодирование – преобразование входной информации в форму, воспринимаемую компьютером, т. е. двоичный код. Декодирование – преобразование данных из двоичного кода в форму, понятную человеку. Привет! 1001011

Двоичное кодирование — это кодирование информации при помощи нулей и единиц. Эти знаки называются Двоичное кодирование — это кодирование информации при помощи нулей и единиц. Эти знаки называются двоичными цифрами, поанглийски — binary digit или сокращенно bit (бит).

Почему двоичное кодирование С точки зрения технической реализации использование двоичной системы счисления для кодирования Почему двоичное кодирование С точки зрения технической реализации использование двоичной системы счисления для кодирования информации оказалось намного более простым, чем применение других способов. Действительно, удобно кодировать информацию в виде последовательности нулей и единиц, если представить эти значения как два возможных устойчивых состояния электронного элемента: 0 – отсутствие электрического сигнала; 1 – наличие электрического сигнала. Эти состояния легко различать. Недостаток двоичного кодирования – длинные коды. Но в технике легче иметь дело с большим количеством простых элементов, чем с небольшим числом сложных. Способы кодирования и декодирования информации в компьютере, в первую очередь, зависит от вида информации, а именно, что должно кодироваться: числа, текст, графические изображения или звук.

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

Для работы с числами человек использует в основном две формы для их записи – Для работы с числами человек использует в основном две формы для их записи – естественную и экспоненциальную. Экспоненциальная форма записи чисел используется для обозначения очень больших или очень маленьких чисел. Например 0, 000002=0, 2*10 -5 или 1000=103.

Целые числа. Целые числа без знака (только положительные) Целые числа со знаком (положительные и Целые числа. Целые числа без знака (только положительные) Целые числа со знаком (положительные и отрицательные) Для хранения чисел в памяти отводится определённое количество разрядов, в совокупности представляющих собой kразрядную сетку.

Представление целых чисел Ячейка - объем памяти, предоставленный для хранения одного числа. l Память Представление целых чисел Ячейка - объем памяти, предоставленный для хранения одного числа. l Память дискретна и адресуема. l Каждое число хранится в определенной ячейке памяти. l Байты памяти нумеруются (адрес ячейки).

Как представляются в компьютере целые числа? Целые числа могут представляться в компьютере со знаком Как представляются в компьютере целые числа? Целые числа могут представляться в компьютере со знаком или без знака. Целые числа без знака обычно занимают в памяти один или два байта и принимают в однобайтовом формате значения от 00002 до 11112 , а в двубайтовом формате - от 000000002 до 111111112.

 Диапазоны значений целых чисел без знака Формат числа в байтах Диапазон Запись с Диапазоны значений целых чисел без знака Формат числа в байтах Диапазон Запись с порядком Обычная запись 1 0. . . 28 -1 0. . . 255 2 0. . . 216 -1 0. . . 65535

Число 3910 = 100111 2 в однобайтовом формате: Число 3910 = 100111 2 в Число 3910 = 100111 2 в однобайтовом формате: Число 3910 = 100111 2 в двубайтовом формате: Число 65 53510 = 111111112 в двубайтовом формате:

Целые числа со знаком обычно занимают в памяти компьютера один, два или четыре байта, Целые числа со знаком обычно занимают в памяти компьютера один, два или четыре байта, при этом самый левый (старший) разряд содержит информацию о знаке числа. Знак "плюс" кодируется нулем, а "минус" - единицей. Диапазоны значений целых чисел со знаком Формат числа в байтах Диапазон Запись с порядком Обычная запись 1 -27. . . 27 -1 -128. . . 127 2 -215. . . 215 -1 -32768. . . 32767 4 -231. . . 231 -1 -2147483648. . . 2147483647

Целые числа со знаком. В компьютерной технике применяются три формы записи (кодирования) целых отрицательных Целые числа со знаком. В компьютерной технике применяются три формы записи (кодирования) целых отрицательных чисел: прямой код, обратный код, дополнительный код.

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

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

Прямой код числа. В знаковый разряд помещается цифра 1, а в разряды цифровой части Прямой код числа. В знаковый разряд помещается цифра 1, а в разряды цифровой части – двоичный код его абсолютной величины. Пример Прямой код числа -1: 1 0 0 Знак числа «-» 0 0 1

Обратный код числа. Получается инвертированием всех цифр двоичного кода абсолютной величины числа, включая разряд Обратный код числа. Получается инвертированием всех цифр двоичного кода абсолютной величины числа, включая разряд знака: нули заменяются единицами, а единицы – нулями. Пример Число: -1. Код модуля числа: 0 0000001. Обратный код числа: 1 1111110. 1 1 1 1 0

Дополнительный код числа. Получается образованием обратного кода с последующем прибавлением единицы к его младшему Дополнительный код числа. Получается образованием обратного кода с последующем прибавлением единицы к его младшему разряду. Пример Число: -1. Код модуля числа: 0 0000001. Обратный код числа: 1 1111110 +1 1 1111111 1 1 1 1

Представление целых отрицательных чисел Отрицательные числа в памяти компьютера записываются с помощью дополнительного кода. Представление целых отрицательных чисел Отрицательные числа в памяти компьютера записываются с помощью дополнительного кода. l Записать представление положительного числа. l Инвертировать код. l К инвертированному числу прибавить 1. l ПРОВЕРИТЬ: при сложении с положительным числом получаем 0.

Формы записи целых положительных чисел Десятичное представление Двоичное Представление в представление прямом коде Представление Формы записи целых положительных чисел Десятичное представление Двоичное Представление в представление прямом коде Представление в обратном коде Представление дополнительном коде 23 127 1 10111 1111111 1 00010111 01111111 00000001 имеют одинаковое представление Число 2310=101112 Число 12710=11111112 прямой, обратный и дополнительный код 0 0 0 1 1 прямой, обратный и дополнительный код 1 0 1 1 1 1 «+» Число 110=12 прямой, обратный и дополнительный код 0 «+» 0 0 0 1

Формы записи целых отрицательных чисел Десятичное представление Двоичное представление Представление в прямом коде Представление Формы записи целых отрицательных чисел Десятичное представление Двоичное представление Представление в прямом коде Представление в обратном коде дополнительном коде -1 -1 10000001 11111110 1111 -17 -10001 10010001 11101111 -127 -1111111 10000000 10000001 Прямой код числа -17: 1 0 0 0 1 Прямой код числа -127: 1 1 1 1 «-» Обратный код числа -17: Обратный код числа -127: 1 1 1 0 1 0 0 0 0 «-» Дополнительный код числа -17: 1 «-» 1 1 0 1 1 Дополнительный код числа -127: 1 «-» 0 0 0 1

 3. Арифметические действия над целыми числами. 3. Арифметические действия над целыми числами.

1. Сложение 0+0=0 0+1=1 1+0=1 1+1=10 1 + 1 = ? 10011 1101+110 = 1. Сложение 0+0=0 0+1=1 1+0=1 1+1=10 1 + 1 = ? 10011 1101+110 = 1 1 + 1 = 10 1 10 + 1 = 11 +10 1 1 0 + 1 10 0 1 1 11 _______

1011101+1100110 = 11000011 1 1 0 1 + 1 1 0 0 1 1 1011101+1100110 = 11000011 1 1 0 1 + 1 1 0 0 1 1 0 11 0 01 1

2. Умножение. 0=0 0 . 1=0 0 . 0=0 1 . 1=1 1 . 2. Умножение. 0=0 0 . 1=0 0 . 0=0 1 . 1=1 1 . 101= 11110 1 1 0 х 1 0 1 1 1 0 + 0 0 0 1 1 1 1 0

3. Вычитание 100000 -11=11101 Решение: В большинстве компьютеров операция вычитание не используется. Вместо неё 3. Вычитание 100000 -11=11101 Решение: В большинстве компьютеров операция вычитание не используется. Вместо неё производится сложение уменьшаемого с обратным или дополнительным кодом вычитаемого. Это позволяет существенно упростить конструкцию АЛУ.

4. Деление выполняется по правилам математики, не забывая, что мы выполняем действия в двоичной 4. Деление выполняется по правилам математики, не забывая, что мы выполняем действия в двоичной системе счисления. 101010: 111=110 Решение: Любые машинные вычисления содержат погрешность. Поэтому корень из числа 4 вполне может быть равен 1, 997

Операции над числами с фиксированной точкой. Операции над числами с фиксированной точкой.

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

 2. А положительное, B отрицательное и по абсолютной величине больше, чем А. Например: 2. А положительное, B отрицательное и по абсолютной величине больше, чем А. Например: Получен правильный результат в обратном коде. При переводе в прямой код биты цифровой части результата инвертируются: 1 0000111 = – 710.

 3. А положительное, B отрицательное и по абсолютной величине меньше, чем А. Например: 3. А положительное, B отрицательное и по абсолютной величине меньше, чем А. Например: Компьютер исправляет полученный первоначально неправильный результат (6 вместо 7) переносом единицы из знакового разряда в младший разряд суммы!!!

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

 5. А и В положительные, сумма А+В больше, либо равна 2 n– 1, 5. А и В положительные, сумма А+В больше, либо равна 2 n– 1, где n – количество разрядов формата чисел (для однобайтового формата n=8, 2 n– 1 = 27 = 128). Например: Семи разрядов цифровой части числового формата недостаточно для размещения восьмиразрядной суммы (16210 = 101000102), поэтому старший разряд суммы оказывается в знаковом разряде. Это вызывает несовпадение знака суммы и знаков слагаемых (знак суммы – отрицателен, знак слагаемых – положительный), что является свидетельством переполнения разрядной сетки.

6. А и В отрицательные, сумма абсолютных величин А и В больше, либо равна 6. А и В отрицательные, сумма абсолютных величин А и В больше, либо равна 2 n– 1. Например: 632 =01111112 Здесь знак суммы тоже не совпадает со знаками слагаемых, что свидетельствует о переполнении разрядной сетки.

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

 2. А положительное, B отрицательное и по абсолютной величине больше, чем А. Например: 2. А положительное, B отрицательное и по абсолютной величине больше, чем А. Например: Получен правильный результат в дополнительном коде. При переводе в прямой код биты цифровой части результата инвертируются и к младшему разряду прибавляется единица: 1 0000110 + 1 = 1 0000111 = – 710.

 3. А положительное, B отрицательное и по абсолютной величине меньше, чем А. Например: 3. А положительное, B отрицательное и по абсолютной величине меньше, чем А. Например: Получен правильный результат. Единицу переноса из знакового разряда компьютер отбрасывает.

 4. А и В отрицательные. Например: Получен правильный результат в дополнительном коде. Единицу 4. А и В отрицательные. Например: Получен правильный результат в дополнительном коде. Единицу переноса из знакового разряда компьютер отбрасывает. Случаи переполнения для дополнительных кодов рассматриваются по аналогии со случаями 5 и 6 для обратных кодов.

Что такое переполнение? l l Выход результатов вычислений за границы допустимого диапазона называется переполнением. Что такое переполнение? l l Выход результатов вычислений за границы допустимого диапазона называется переполнением. Переполнение приводит к ошибкам при автоматических расчетах или остановке выполнения программы. Программист должен правильно определять тип данных (диапазон чисел).

 4. Арифметические операции над числами с плавающей точкой. 4. Арифметические операции над числами с плавающей точкой.

Представление чисел с плавающей точкой. Этот способ представления опирается на нормализованную (экспоненциальную) запись действительных Представление чисел с плавающей точкой. Этот способ представления опирается на нормализованную (экспоненциальную) запись действительных чисел. Нормализованная запись отличного от нуля действительного числа A - это запись вида: А= m* qn, где m – мантисса числа (правильная дробь, у которой первая цифра после запятой не равна нулю), q – основание системы, n – порядок числа.

Например, число 25, 324 можно записать в таком виде: 0. 25324 х102. Здесь m=0. Например, число 25, 324 можно записать в таком виде: 0. 25324 х102. Здесь m=0. 25324 — мантисса, n=2 — порядок. Порядок указывает, на какое количество позиций и в каком направлении должна «переплыть» , т. е. сместиться десятичная точка в мантиссе. Отсюда название «плавающая точка» . Однако справедливы и следующие равенства: 25, 324 = 2, 5324*101 = 0, 0025324*104 = 2532, 4*102 и т. п.

Получается, что представление числа в форме с плавающей точкой неоднозначно? Чтобы не было неоднозначности, Получается, что представление числа в форме с плавающей точкой неоднозначно? Чтобы не было неоднозначности, в ЭВМ используют нормализованное представление числа в форме с плавающей точкой. Мантисса в нормализованном представлении должна удовлетворять условию: 0, 1 p ≤ m < 1 p.

Иначе говоря, мантисса меньше единицы и первая значащая цифра — не ноль. Значит для Иначе говоря, мантисса меньше единицы и первая значащая цифра — не ноль. Значит для рассмотренного числа нормализованным представлением будет: 25, 324=0. 25324 * 102.

Для представления вещественных чисел (конечных и бесконечных десятичных дробей) используют формат с плавающей точкой Для представления вещественных чисел (конечных и бесконечных десятичных дробей) используют формат с плавающей точкой (запятой). Форма с плавающей точкой использует представление вещественного числа R в виде произведения мантиссы m на основание системы счисления р в некоторой целой степени n, которую называют порядком: R = m * рn m – мантисса, n – порядок, p – основание системы.

Пусть в памяти компьютера вещественное число представляется в форме с плавающей точкой в двоичной Пусть в памяти компьютера вещественное число представляется в форме с плавающей точкой в двоичной системе счисления (р=2) и занимает ячейку размером 4 байта. В ячейке должна содержаться следующая информация о числе: знак числа, порядок и значащие цифры мантиссы. Вот как эта информация располагается в ячейке: ±машинный порядок М А Н Т И С С А 1 -й байт 2 -й байт 3 -й байт 4 -й байт В старшем бите 1 -го байта хранится знак числа. В этом разряде 0 обозначает плюс, 1 — минус. Оставшиеся 7 бит первого байта содержат машинный порядок. В следующих трех байтах хранятся значащие цифры мантиссы.

Что такое машинный порядок? В семи двоичных разрядах помещаются двоичные числа в диапазоне от Что такое машинный порядок? В семи двоичных разрядах помещаются двоичные числа в диапазоне от 0000000 до 1111111. В десятичной системе это соответствует диапазону от 0 до 127. Всего 128 значений. Знак порядка в ячейке не хранится. Но порядок, очевидно, может быть как положительным так и отрицательным. Разумно эти 128 значений разделить поровну между положительными и отрицательными значениями порядка. В таком случае между машинным порядком и истинным (назовем его математическим) устанавливается следующее соответствие: Машинный порядок 0 1 2 3 . . . 64 65 . . . 125 126 127 Математический порядок -64 -63 -62 -61 . . . 0 1 . . . 61 62 63 Если обозначить машинный порядок Мр, а математический — р, то связь между ними выразится такой формулой: Мр = р + 64.

Итак, машинный порядок смещён относительно математического на 64 единицы и имеет только положительные значения. Итак, машинный порядок смещён относительно математического на 64 единицы и имеет только положительные значения. При выполнении вычислений с плавающей точкой процессор это смещение учитывает. l В двоичной системе счисления смещение: Мр2 = р2+100 00002 l

Теперь мы можем записать внутреннее представление числа 25, 324 в форме с плавающей точкой. Теперь мы можем записать внутреннее представление числа 25, 324 в форме с плавающей точкой. 1)Переведем его в двоичную систему счисления с 24 значащими цифрами. l 25, 32410= 11001, 01010010111100011012 2)Запишем в форме нормализованного двоичного числа с плавающей точкой: l 0, 110010101001011110001101*10101 Здесь мантисса, основание системы счисления (210=102) и порядок (510=1012)записаны в двоичной системе. 3) Вычислим машинный порядок. Мр2 = 101 + 100 0000 = 100 0101. 4) Запишем представление числа в ячейке памяти. 31 порядок мантисса 0 0 1 0 1 1 1 0 0 1 0 1 0 1 1 0 0 0 1 1 0 1 Знак числа

Число в форме с плавающей точкой занимает в памяти компьютера 4 байта (число обычной Число в форме с плавающей точкой занимает в памяти компьютера 4 байта (число обычной точности) или 8 байт (число двойной точности). Мы рассмотрели пример представления числа 25, 324 обычной точности

Для того, чтобы получить внутреннее представление отрицательного числа -25, 324, достаточно в полученном выше Для того, чтобы получить внутреннее представление отрицательного числа -25, 324, достаточно в полученном выше коде заменить в разряде знака числа 0 на 1. 1 1 0 0 0 1 1 1 0 0 1 0 1 0 1 1 0 0 0 1 1 0 1

Задание. Представьте двоичное число -100, 12 в четырёхбайтовом формате. Представьте число сначала в форме Задание. Представьте двоичное число -100, 12 в четырёхбайтовом формате. Представьте число сначала в форме с плавающей запятой.

Решение. -100, 12= -0, 1001*211 Мантисса -0, 1001 Порядок 11 Машинный порядок 11+100 0000=100011. Решение. -100, 12= -0, 1001*211 Мантисса -0, 1001 Порядок 11 Машинный порядок 11+100 0000=100011. 1 1 0 0 1 1 1 0 0 0 0 0 0