- •Представление данных и команд в памяти компьютера. Содержание
- •Запись чисел с фиксированной точкой.
- •Запись положительных чисел с фиксированной точкой.
- •Запись отрицательных чисел с фиксированной точкой.
- •Добавления к инвертированному представлению единички.
- •Строим дополнение и добавляем единичку:
- •Представление чисел с плавающей точкой
- •Представление команд
- •Форматы команд
Запись отрицательных чисел с фиксированной точкой.
Отрицательные числа всегда имеют в своем двоичном представлении единицу в самом старшем разряде, который поэтому называют знаковым, а абсолютная величина кодируемого числа получается как двоичное дополнение остальных бит (нули нужно заменить на единицы и наоборот), увеличенное на один.
Отрицательные числа представляются в дополнительном двоичном коде, так называемом дополнении, которое получается в результате:
-
Так называемого ИНВЕРТИРОВАНИЯ двоичного представления модуля исходного числа, когда НУЛЕВЫЕ биты превращаются в ЕДИНИЧНЫЕ, а ЕДИНИЧНЫЕ - в НУЛЕВЫЕ
-
Добавления к инвертированному представлению единички.
Например, для представления числа - 42 необходимо провести следующие преобразования :
1. -4210== - 2А16== - 0010 10102
Инвертируем: из 0010 1010 получаем
1101 0101
2. Добавляем 1 :
1101 0101
1
1101 0110
Поэтому байт в оперативной памяти будет заполнен следующим образом
-
1
1
0
1
0
1
1
0
Или в 16 с/с : D6
В таком представлении старший разряд в слове используется для представления знака числа. В результате введения знакового разряда диапазон чисел смещается в сторону отрицательных чисел:
1 байт |
-128..127 |
2 байт |
-32768..32767 |
4 байт |
-2147483648..2147483647 |
8 байт |
-263..263-1 |
Например, для представления числа - 259 необходимо произвести следующие построения :
1. - 25910 = - 10316 = - 00 00 01 03 16 =
== - 0000 0000 0000 0000 0000 0001 0000 0011 ====>
-
Строим дополнение и добавляем единичку:
1111 1111 1111 1111 1111 1110 1111 1100
1
1111 1111 1111 1111 1111 1110 1111 1101
F F F F F E F D
Для нахождения дополнения лучше пользоваться способом, основанном на следующих построениях :
-- для однобайтового представления от числа 100 в 16 с/с нужно отнять значение представляемого числа в 16 с/с. Например, для числа -42, которое в шестнадцатеричной системе счисления представимо как -2А, это будет так :
_1 00
2А
D6.
-- для двухбайтового представления от числа 1 00 00 в 16 с/с нужно отнять значение представляемого числа в 16 с/с. Например, для числа -42 это будет так :
_ 1 00 00
2А
FF D6
-- для четырехбайтового представления такое отнимание делается от 1 00 00 00 00.
Представление чисел с плавающей точкой
Представление чисел служит для хранения в памяти целых и дробных чисел, например таких -5 159 или 234.7 или 0.0000025 или 2.3*10 .
Числа с плавающей точкой представляются в виде так называемых
М А Н Т И С C Ы и П О Р Я Д К А .
Число с плавающей точкой это есть способ записи числа в позиционной системе счисления с основанием R, когда некоторое число N представляется в виде
N = q * Rp
p - целое число, называемое ПОРЯДКОМ числа,
q - правильная дробь, называемая МАНТИССОЙ.
Если q < 0.1, то мантисса называется НЕНОРМАЛИЗОВАННОЙ, в противном случае - НОРМАЛИЗОВАННОЙ.
Представлением десятичного числа в виде числа с плавающей точкой в оперативной памяти ПЭВМ называется представление, получаемое следующим образом:
1. Исходное десятичное число с точкой переводится в число в шестнадцатеричной системе счисления.
2. Полученное шестнадцатеричное представление числа с точкой переводится в двоичную систему счисления.
3. Полученное двоичное представление числа с точкой записывается в двоичной системе счисления посредством применения так называемых усеченной мантиссы и усеченного порядка
4. Определяется характеристика числа по формуле
7F + значение усеченного порядка
5. В первом слева бите четырехбайтового представления числа кодируется знак числа (0 – если число положительное, 1 – если число отрицательное ).
6. В следующих восьми битах, если смотреть на них слева направо, записывается характеристика.
7. Оставшиеся биты ( 32 - 1 - 8 = 23 ) заполняются усеченной мантиссой.
8. Полученное на предыдущих шагах четырехбайтовое представление при расположении его в памяти хранится там в ПЕРЕВЕРНУТОМ виде.
Представление числа -256.5 в виде четырехбайтового числа с плавающей точкой:
1. -256.5 == - 100.8 16
-
- 100.8 == - 1 0000 0000 . 1000 2
-
- 1 0000 0000 . 1000 == - 1 . 0000 0000 1000 * 10 8
Здесь число 8 в десятичной, или 8 в шестнадцатиричной, или 1000 в двоичной и есть то, что называется УСЕЧЕННЫМ ПОРЯДКОМ
А то, что стоит после точки, перед которой стоит единичка в 2 с/с, а именно:
0000 0000 1000 - и есть усеченная мантисса.
-
ХАРАКТЕРИСТИКА ==
7F + 8 = 87 16 == 1000 0111 2
5. Рисуем четыре байта или 32 бита и кодируем в первом бите знак числа. Оно у нас отрицательное, а значит в первый бит мы должны посадить 1 :
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6. В следующих восьми битах записывается характеристика ( которая у нас равна 1000 0111 ) :
1 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7. В оставшиеся биты записываем Усеченную мантиссу (столько разрядов, сколько поместится, а если биты остаются пустыми, то заполняем их ноликами ). У нас усеченная мантисса равна 0000 0000 1000 – ее мы и запишем, как сможем.
1 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Обычно будет требоваться записать полученное представление в 16 с/с. Для чего нужно все это поделить на тетрады слева направо и записать, что это будет
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
С 3 8 0 4 0 0 0
не что иное как С3 80 40 00.
8. Единственное, что осталось сделать – это перевернуть полученное представление в оперативной памяти, т.е. сказать, что в памяти будем иметь
00 40 80 С3.
Восьми байтовое представление Числа с Плавающей Точкой характеризуется тем, что процесс построения этого представления полностью совпадает с приведенным выше Определением для четырехбайтового представления, за небольшим лишь исключением, что под характеристику отводится 11 битов , а сама
ХАРАКТЕРИСТИКА == 3FF + р , где
р - усеченный порядок числа с плавающей точкой в 2 с/с, да еще тем, что под усеченную мантиссу отводится :
8 байтов * 8 битов == 64 бита – 1 бит под знак == 63 бита – 11 битов под характеристику == 52 бита под усеченную мантиссу.
Напр 256,5
1. -256.5 == - 100.8 16
-
- 100.8 == - 1 0000 0000 . 1000 2
-
- 1 0000 0000 . 1000 == - 1 . 0000 0000 1000 * 10 8
-
ХАРАКТЕРИСТИКА ==
3FF + 8 = 407 16 == 0100 0000 0111 2
1010 0000 0011 1000 0000 0100 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
A 0 3 8 0 4 0 0 0 0 0 0 0 0 0 0
10
Упражнение. Нарисовать внутреннее представление чисел :
-
–25.25
-
2048.0625