Представление числа в 16 разрядной сетке

Представление числа в 16 разрядной сетке

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

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

1 1 1 1

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

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

А = 1 × 2 7 + 1 × 2 6 + 1 × 2 5 + 1 × 2 4 + 1 × 2 3 + 1 × 2 2 + 1 × 2 1 + 1 × 2 0 = 1 × 2 8 — 1 = 25510.

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

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

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

1 1 1 1 1 1 1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

А = 2 31 — 1 = 2 147 483 64710.

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

А = -2 31 = — 2 147 483 64810.

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

Читайте также:  Как удалить яндекс ключ

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

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

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

A = m × q n 2.3

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

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

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

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

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

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

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

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

2 127 = 1,7014118346046923173168730371588 × 10 38 .

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

2 23 — 1 » 2 23 = 2 (10 × 2,3) » 1000 2,3 = 10 (3 × 2,3) » 10 7 .

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

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

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

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

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

Представление чисел в форме с фиксированной запятой (ФЗ)

Формат представления чисел с запятой, фиксированной перед старшим разрядом:

 n – разрядная сетка ЭВМ

В этом формате диапазон представляемых чисел

Формат представления чисел с запятой, фиксированной после младшего разряда:

В этом формате диапазон представляемых чисел

Представление знаков: “+” 0; “-“ 1.

Пример.Представить число -0,0225(10)в форме с ФЗ в 16-разрядной сетке ЭВМ.

Формат представления чисел в форме с естественной запятой.

(с произвольным расположением запятой в пределах n-разрядной сетки ЭВМ)

целая часть числа (lразрядов)

дробная часть числа (mразрядов)

n– разрядная сетка ЭВМ (n=l+m+1)

Задание 14.Представить число 1141(10)в форме с ФЗ в 16-разрядной сетке.

Читайте также:  Usb otg с внешним питанием

Задание 15.Представить число -0,4­(10)в форме с ФЗ в 8-разрядной сетке.

Задание 16.Представить число -88,8125­(10)в форме с естественной запятой в 16-разрядной сетке.

Представление чисел в форме с плавающей запятой (ПЗ).

Число представляется в виде: , где А – исходное число, М – мантисса (/М/ P – характеристика числа А,S– основание С. С., Р – порядок.

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

Пример.Представить число -27,375(10)в форме с ПЗ в 16-разрядной сетке ЭВМ.

-27,375­(10)=-11011,011(2). Проведя нормализацию получим. Пусть под порядок отведено 4 разряда. Тогда содержимое разрядной сетки будет:

Задание 17.Представить число 59,625(10)в форме с ПЗ в 16-разрядной сетке.

Задание 18.Представить число -0,0625(10)­в форме с ПЗ в 8-разрядной сетке.

Задание 19.Представить число -6,025­(10)в форме с ПЗ в 32-разрядной сетке.

Задание 20.Представить число 0,1Е(16)в форме с ПЗ в 16-разрядной сетке.

Представление чисел в форме с ПЗ и смещённым порядком.

Смещённый порядок Здесь— истинный порядок, аN=2 k , где числоk– число двоичных разрядов отведённое для представления(или Рсм). Всегда Рсм>0.

Короткий (32 разряда) формат представления чисел с ПЗ и смещённым порядком в ЕС ЭВМ

0 1 3

4 7

8 11

12 15

16 19

20 23

24 27

28 31

Здесь ,,— шестнадцатеричные разряды. Следовательно содержимое разрядной сетки может быть представлено числом. При таком представлении нормализация проводится для шестнадцатеричного числа. При определении смещённого порядка числоNв шестнадцатеричной С. С. будет равно 40(16).

В ЕС ЭВМ существуют также длинный (64 двоичных разряда) и расширенный (128 двоичных разряда) форматы. В них расширяется только поле отводящееся под мантиссу.

Пример.Представить число -0,01(10)в форме с ПЗ и смещённым порядком в коротком формате ЕС ЭВМ.

Переведём число в шестнадцатеричную С. С. . Проведя нормализацию этого числа получим мантиссу (-0,2815С3)(16), а порядок (-1)(16). Определим смещённый порядок.

.

Прямой, дополнительный и обратный код числа (создан по запросу).

Далее идет калькулятор, который переводит введенное положительное или отрицательное целое число в двоичный код, а также выводит обратный код этого числа и его дополнительный код. Под калькулятором, как водится, немного теории.

Обновление: Из комментариев становится ясно, что люди не вполне понимают, что делает этот калькулятор. Точнее, что делал — применял алгоритм вычисления дополнительного кода к любому числу. Люди хотят, чтобы он им просто показывал дополнительный код числа. Ну хорошо — теперь при вводе положительного числа калькулятор показывает представление числа в двоичной форме, ибо для него нет обратного и дополнительного кода, а при вводе отрицательного показывает дополнительный и обратный код.

Прямой, дополнительный и обратный код

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

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

Читайте также:  Как открыть дисковод на xbox one

Дополнительный код числа, или дополнение до двойки (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, или .
Или, что тоже самое, дополнительный код числа "дополняет" прямой код до , т.е. 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, то было. При этом, если переполнения не было, то выход за разряды можно игнорировать.

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

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

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

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

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

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

Ссылка на основную публикацию
Почему шуруповерт крутит медленно
Ремонт или монтаж мебели в разгаре, а шуруповерт перестал работать. Рассмотрим основные причины поломок и способы ремонта шуруповерта своими руками...
Почему лайтрум не экспортирует фото
Мы заметили, что многие фотографы, обрабатывая фотографии в Lightroom, часто сталкиваются с проблемой – как экспортировать снимки. В этой статье...
Почему на андроид не удается открыть файл
Ошибка “Невозможно открыть файл” на телефонах Андроид возникает не часто, причин тому множество. Почему пишет “Невозможно открыть файл” Самая банальная...
Почта которая должна храниться локально
Создание локальных папок писем для уменьшения размера, занимаемого почтовым ящиком При достижении большого размера почтового ящика входящая почта начинает работать...
Adblock detector