Суббота, 27.04.2024, 03:29
Блог учителя информатики и математики
О блогеМой профильРегистрацияВыходВход
Вы вошли как Гость · Группа "Гости" Приветствую Вас, Гость · RSS
Меню блога
Погода в нашем районе.

НАГРАДА

Как Вы считаете, должны ли дети ходить в школу в школьной форме?
Всего ответов: 2807
 
 Блог учителя
Главная » Статьи » Информатика » В помощь ученику

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

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

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

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

10110110

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

2n - 1.

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

А = 1 × 27 + 1 × 26 + 1 × 25 + 1 × 24 + 1 × 23 + 1 × 22 + 1 × 21 + 1 × 20 = 1 × 28 - 1 = 25510.

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

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

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

0000011111011100

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

А16 = 216-1 - 1=215 - 1=32 767.

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

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

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

2n - |А| + |А| = 0,

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

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

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

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

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

Запишем дополнительный код отрицательного числа -2012 для 16-разрядного компьютерного представления:

Прямой код модуля  -2012
 т.е. его модуль (2012)
0000011111011100
Обратный код
Инвертирование
1111100000100011

Прибавление единицы
+
0000000000000001
Дополнительный код

1111100000100100

Прямой код числа это представление беззнакового двоичного числа. Если речь идет о машинной арифметике, то как правило на представление числа отводится определенное ограниченное число разрядов. Диапазон чисел, который можно представить числом разрядов n равен 2n ( в примере рассматриваем два байта)

Обратный код числа, или дополнение до единицы (one’s complement) это инвертирование прямого кода (поэтому его еще называют инверсный код). То есть все нули заменяются на единицы, а единицы на нули.

Дополнительный код числа, или дополнение до двойки (two’s complement) это обратный код, к младшему значащему разряду которого прибавлена единица

А теперь "зачем, зачем это все?" (с)

А это все для удобной работы со знаками. Поскольку я все люблю понимать на примерах, рассказывать я тоже буду на примерах. Итак, предположим, что у нас 4 разряда для работы с двоичными числами. Представить таким образом можно 16 чисел - 0,1,... 15
00 - 0000
...
15 - 1111

Но если нет знака, убогая получается арифметика. Нужно вводить знак. Чтобы никого не обидеть, половину диапазона отдадим положительным числам (8 чисел), половину - отрицательным (тоже 8 чисел). Ноль, что отличает машинную арифметику от обычной, мы отнесем в положительные числа (в обычном арифметике у нуля нет знака). Итого, в положительные числа попадают 0,...,7, а в отрицательные -1,...,-8.

Для различия положительных и отрицательных чисел выделяют старший разряд числа, который называется знаковым (sign bit)
0 в этом разряде говорит нам о том, что это положительное число, а 1 - отрицательное.

С положительными числами все вроде бы понятно, для их представления можно использовать прямой код
0 - 0000
1 - 0001
7 - 0111

А как представить отрицательные числа?

Вот для их представления как раз и используется дополнительный код.
То есть, -7 в дополнительном коде получается так
прямой код 7 = 0111
обратный код 7 = 1000
дополнительный код 7 = 1001

Обратим внимание на то, что прямой код 1001 представляет число 9, которое отстоит от числа -7 ровно на 16, или24 .
Или, что тоже самое, дополнительный код числа "дополняет" прямой код до 2^n, т.е. 7+9=16

И это оказалось очень удобно для машинных вычислений - при таком представлении отрицательного числа операции сложения и вычитания можно реализовать одной схемой сложения, при этом очень легко определять переполнение результата (когда для представления получившегося числа не хватает разрядности)

Пара примеров
7-3=4
0111 прямой код 7
1101 дополнительный код 3
0100 результат сложения 4

-1+7=6
1111 дополнительный код 1
0111 прямой код 7
0110 результат сложения 6

Что касается переполнения - оно определяется по двум последним переносам, включая перенос за старший разряд. При этом если переносы 11 или 00, то переполнения не было, а если 01 или 10, то было. При этом, если переполнения не было, то выход за разряды можно игнорировать.

Примеры где показаны переносы и пятый разряд

7+1=8

00111 прямой код 7
00001 прямой код 1
01110 переносы
01000 результат 8 - переполнение

Два последних переноса 01 - переполнение

-7+7=0
00111 прямой код 7
01001 дополнительный код 7
11110 переносы
10000 результат 16 - но пятый разряд можно игнорировать, реальный результат 0

Два последних переноса 11 - перенос в пятый разряд можно отбросить, оставшийся результат, ноль, арифметически корректен
Опять же проверять на переполнение можно простейшей операцией XOR двух бит переносов.

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

P.S. Ну а обратный код дополняет число до2n -1, или до всех 1, потому и называется дополнением до 1. Им тоже можно представлять отрицательные числа, и реализовать вычитание и сложение схемой сложения, только сложение там хитрее - с циклическим переносом, ну и представить можно меньше на одно число, так как все единицы уже заняты - это обратный код нуля, эдакий "минус нуль", то есть диапазон получается, если брать наш пример от -7 до 7. Не так удобно, одним словом.



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

2n-1 - |А|.

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

|А| £ 2n-1 .

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

|А| = 2n-1 .

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

А = - 2n-1.

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

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

А = 231 - 1 = 2 147 483 64710.

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

А = -231 = - 2 147 483 64810.

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

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

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

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

A = m × qn2.3

где m - мантисса числа;
q - основание системы счисления;
n - порядок числа.

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

1/n £ |m| < 1.

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

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

555,55 = 0,55555 × 103 .

Здесь нормализованная мантисса: m = 0,55555, порядок: n = 3.

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

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

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

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

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

2127 = 1,7014118346046923173168730371588 × 1038 .

Максимальное значение положительной мантиссы равно:

223 - 1 » 223 = 2(10 × 2,3)» 10002,3 = 10(3 × 2,3)» 107.

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



Задания

1.26. Заполнить таблицу, записав отрицательные десятичные числа в прямом, обратном и дополнительном кодах в 16-разрядном представлении:

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

1.27. Определить диапазон представления целых чисел со знаком (отводится 2 байта памяти) в формате с фиксированной запятой.

1.28. Определить максимальное число и его точность для формата чисел двойной точности, если для хранения порядка и его знака отводится 11 разрядов, а для хранения мантиссы и ее знака - 53 разряда.


Категория: В помощь ученику | Добавил: Harchyov (19.11.2011)
Просмотров: 5789 | Комментарии: 2 | Рейтинг: 3.8/5
Всего комментариев: 1
1 Phillipsiz  
<a href=http://pornjam.ga/info/i/7><img src="http://pornjam.ga/pr/images/1.jpg"></a>

<a href=http://pornjam.ga/info/i/7>знакомства для взрослых бесплатно</a>

Онлайн сообщество знакомств с целью интима. Реальные встречи с противоположным полом для удовлетворения фантазий в твоем городе. Заглядывай - тебе понравится!

интим знакомства волгоград, гей знакомства в контакте, tabor сайт знакомств вход, фильм знакомство со, m love знакомства, наталья знакомство, поиск знакомств, серьезные знакомства в москве бесплатно, tabor ru сайт знакомств вход, сайт знакомства без регистрации с номерами, знакомства с женщиной без регистрации с телефоном, сайт знакомства ру регистрация, сайт знакомств mail, знакомство с факерами 2004, www знакомств ru, знакомства комсомольск, tabor сайт знакомств мобильная, знакомство с подготовительной группой, знакомство в старшей группе, анна знакомства, tabor ru сайт знакомств мобильная, знакомство с народными традициями, знакомства дзержинск, фильм знакомство со спартанцами, знакомства майл ру мобильная версия, смотреть фильм знакомство, знакомства встречи бесплатно, большие знакомства, сайт знакомств пермь, мобильные знакомства без, секс знакомства чебоксары, знакомства 65, знакомства нижнекамск, tabor ru знакомства мобильная версия, знакомства 25, знакомства ру вход без

Имя *:
Email *:
Код *:
Copyright MyCorp © 2024
Блог учителя Учительский портал