Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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

Числовые данные обрабатываются в компьютере в двоичной системе счисления. Числа хранятся в оперативной памяти в виде последовательностей нулей и единиц, т.е. в двоичном коде.

Представление чисел в формате с фиксированной запятой. Целые числа в компьютере хранятся в памяти в формате с фиксированной запятой. В этом случае каждому разряду ячейки памяти соответствует всегда один и тот же разряд числа, а запятая находится справа после младшего разряда, т.е. вне разрядной сетки.

Для хранения целых неотрицательных чисел отводится одна ячейка памяти (8 бит). Например, число A2 = 101010102 будет хранится в ячейке памяти следующим образом:

               

Максимальное значение целого неотрицательного числа достигается в случае, когда во всех ячейках хранятся единицы. Для n-разрядного представления оно будет равно:

2n - 1

Пример 26. Определить диапазон чисел, которые могут хранится в оперативной памяти в формате целое неотрицательное число.

Минимальное число соответствует восьми нулям, хранящимся в восьми ячейках памяти, и равно нулю.

Максимальное число соответствует восьми единицам, хранящимся в ячейках памяти и равно:

A = 1E27 +1E26 +1E25 + 1E24 + 1E23 + 1E22 + 1E21 + 1E20 = 1E28 – 1 = 25510

Диапазон изменения целых неотрицательных чисел от 0 до 255.

Для хранения целых чисел со знаком отводится две ячейки памяти (16 бит), причем старший (левый) разряд отводится под знак числа (если число положительное, то в знаковый разряд записывается 0, если число отрицательное записывается 1).

Представление в компьютере положительных чисел с использованием формата «знак-величина» называется прямым кодом числа. Например, число 200210 = 111110100102 будет представлено в 16-ти разрядном представлении следующим образом:

                               

При представлении целых чисел в n-разрядном представлении со знаком максимальное положительное число (с учетом выделения одного разряда на знак) равно:

A = 2n-1 - 1

Пример 27. Определить максимальное положительное число, которое может хранится в оперативной памяти в формате целое число со знаком.

A10 = 215 – 1 = 3276710

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

! Дополнительный код отрицательного числа A, хранящегося в n ячейках, равен 2n - |A|.

Дополнительный код представляет собой дополнение модуля отрицательного числа А до 0, поэтому в n-разрядной компьютерной арифметике:

2n - |A| + |A| ≡ 0

Это равенство тождественно справедливо, т.к. в компьютерной n-разрядной арифметике 2n ≡ 0. Действительно, двоичная запись такого числа состоит из одной единицы и n нулей, а в n-разрядную ячейку может уместиться только n младших разрядов, т.е. n нулей.

Пример 28. Записать дополнительный код отрицательного числа –2002 для 16-ти разрядного компьютерного представления.

Проведем вычисления в соответствии с определением дополнительного кода:

216 = 100000000000000002 6553610
200210 = 00000111110100102 200210
216 - |200210| = 11111000001011102 6353410

Проведем проверку с использованием десятичной системы счисления. Дополнительный код 6353410 в сумме с модулем отрицательного числа 200210 равен 6553610, т.е. дополнительный код дополняет модуль отрицательного числа до 216 (до нуля 16-ти разрядной компьютерной арифметики).

Для получения дополнительного кода отрицательного числа можно использовать довольно простой алгоритм:

1. Модуль числа записать прямым кодом в n двоичных разрядах;

2. Получить обратный код числа, для этого значения всех бит инвертировать (все единицы заменить на нули и все нули заменить на единицы);

3. К полученному обратному коду прибавить единицу.

Пример 29. Записать дополнительный код отрицательного числа –2002 для 16-ти разрядного компьютерного представления с использованием алгоритма.

Прямой код |-200210| 00000111110100102
Обратный код инвертирование 11111000001011012
  прибавление единицы 11111000001011012 + 00000000000000012
Дополнительный код   11111000001011102

При n-разрядном представлении отрицательного числа А дополнительным кодом старший разряд выделяется для хранения знака числа (единицы). В остальных разрядах записывается положительное число:

2n-1 - |A|.

Чтобы число было положительным должно выполняться условие:

|A| ≤ 2n-1

Следовательно, максимальное значение модуля числа А в n-разрядном представлении равно:

|A| = 2n-1

Тогда, минимальное отрицательное число равно:

A = -2n-1

Пример 30. Определить диапазон чисел, которые могут хранится в оперативной памяти в формате больших целых чисел со знаком (для хранения таких чисел отводится четыре ячейки памяти - 32 бита).

Максимальное положительное целое число (с учетом выделения одного разряда на знак) равно:

A = 231 – 1 = 2 147 483 64710

Минимальное отрицательное целое число равно:

A = -231 = -2 147 483 64810

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

Пример 31. Выполнить арифметическое действие 300010 - 500010 в 16-ти разрядном компьютерном представлении.

Представим положительное число в прямом, а отрицательное число в дополнительном коде:

Десятичное число Прямой код Обратный код Дополнительный код
       
-5000     +0000000000000001

Сложим прямой код положительного числа с дополнительным кодом отрицательного числа. Получим результат в дополнительном коде:

3000-5000      

Переведем полученный дополнительный код в десятичное число:

1) Инвертируем дополнительный код: 0000011111001111

2) Прибавим к полученному коду 1 и получим модуль отрицательного числа:

+ 0000000000000001

3) Переведем в десятичное число и припишем знак отрицательного числа:
-2000.

Недостатком представления чисел в формате с фиксированной запятой является конечный диапазон представления величин, недостаточный для решения математических, физических, экономических и других задач, в которых используются как очень малые, так и очень большие числа.

Представление чисел в формате с плавающей запятой. Вещественные числа (конечные и бесконечные десятичные дроби) хранятся и обрабатываются в компьютере в формате с плавающей запятой. В этом случае положение запятой в записи числа может изменяться.

Формат чисел с плавающей запятой базируется на экспоненциальной форме записи, в которой может быть представлено любой число. Так число А может быть представлено в виде: A = m×qn

где m – мантисса числа

q – основание системы счисления,

n – порядок числа.

Для однозначности представления чисел с плавающей запятой используется нормализованная форма, при которой мантисса отвечает условию:

1/n ≤ |m| < 1.

Это означает, что мантисса должна быть правильной дробью и иметь после запятой цифру, отличную от нуля.

Пример 32. Преобразуйте десятичное число 888,888, записанное в естественной форме, в экспоненциальную форму с нормализованной мантиссой.

888,888 = 0,888888×103

Нормализованная мантисса m = 0,888888, порядок n = 3.

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

Диапазон изменения чисел определяется количеством разрядов, отведенных для хранения порядка числа, а точность (количество значащих цифр) определяется количеством разрядов, отведенных для хранения мантиссы.

Пример 33. Определить максимальное число и его точность для формата чисел обычной точности, если для хранения порядка и его знака отводится 8 разрядов, а для хранения мантиссы и ее знака 24 разряда.

                                                               
знак и порядок знак и мантисса

Максимальное значение порядка числа составит 11111112 = 12710, и, следова­тельно, максимальное значение числа составит:

2127 = 1,7014118346046923173168730371588×1038

Точность вычислений определяется количеством разрядов, отведенных для хранения мантиссы чисел. Максимальное значение положительной мантиссы равно:

223 - 1 ≈ 223 = 2(10х2,3) ≈ 10002,3 = 10(3х2,3) ≈ 107

Таким образом, максимальное значение чисел обычной точности с учетом возможной точности вычислений составит 1,701411×1038 (количество значащих цифр десятичного числа в данном случае ограничено 7 разрядами).

При сложении и вычитании чисел в формате с плавающей запятой сначала производится подготовительная операция выравнивания порядков. Порядок меньшего (по модулю) числа увеличивается до величины порядка большего (по модулю) числа. Для того чтобы величина числа не изменилась, мантисса уменьшается в такое же количество раз (сдвигается в ячейке памяти вправо на количество разрядов, равное разности порядков чисел).

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

После выполнения арифметической операции для приведения полученного числа к стандартному формату с плавающей запятой производится нормализация, т.е. мантисса сдвигается влево или вправо так, чтобы ее первая значащая цифра попала в первый разряд после запятой.

Пример 34. Произвести сложение чисел 0,1×23 и 0,1×25 в формате с плавающей запятой.

Произведем выравнивание порядков и сложение мантисс:

0,001×25

+0,100×25

0,101×25

При умножении чисел в формате с плавающей запятой порядки складываются, а мантиссы перемножаются. При делении из порядка делимого вычитается порядок делителя, а мантисса делимого делится на мантиссу делителя.

Пример 35. Произвести умножение чисел 0,1×23 и 0,1×25 в формате с плавающей запятой.

После умножения будет получено число 0,01×28, которое после нормализации примет вид 0,1×27.

 

Источники:

 

1. Угринович Н.Д. Информатика и информационные технологии.
М. БИНОМ. Лаборатория знаний. 2003

2. Windows-CD по курсу "Информатика и ИКТ", версия 4.1, 2005

3. www.metodist.ru/content/view/44/98/

 

<== предыдущая лекция | следующая лекция ==>
Перевод чисел из системы счисления с основанием 2 в систему счисления с основанием 2n и обратно | Особенности технологии и учет затрат в сельском хозяйстве
Поделиться с друзьями:


Дата добавления: 2014-01-05; Просмотров: 1486; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.