- •Оглавление
- •Представление чисел в памяти эвм
- •Представление беззнаковых целых чисел в памяти эвм
- •Обратный код
- •Пример 1.
- •Пример 2.
- •Пример 3.
- •Пример 4.
- •Пример 5.
- •Пример 2.
- •Пример 3.
- •Пример 4.
- •Пример 5.
- •Важное следствие (пример 2).
- •Представление вещественных типов в памяти эвм
- •Пример 1
- •Пример 2
- •Пример 2
- •Пример 3
- •Пример 4
- •Алгоритмы работы с числами, которые представлены строкой
- •Сложение положительных чисел, представленных в виде строки
- •Реализация алгоритма на Pascal
- •Умножение положительного числа, представленного в виде строки, на одноразрядный коэффициент
- •Реализация алгоритма на Pascal
- •Умножение двух положительных целых чисел, представленных в виде строки
- •Реализация алгоритма на Pascal
- •Сравнение двух целых чисел, представленных в виде строки
- •Реализация алгоритма на Pascal
- •Вычитание целых чисел, представленных в виде строки
- •Реализация алгоритма на Pascal
- •Реализация алгоритмов работы с целыми числами, представленными в виде строки на c#
Пример 3
Найти представление числа 0.375 в форме с плавающей запятой, если это 4х байтовое число и под порядок отводится 9 бит.
Решение.
Это тип Single. Т.к. он занимает 4 байта, то это 32 бита. Поэтому в общем виде ответ будет выглядеть:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Так как число положительное, то в первом бите будет 0. Поэтому следующий шаг к ответу будет
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Переведем число 0.375 в двоичную систему.
0.375= 0.0112
Пронормируем это число
0.0112=1.1*2-2.
Порядок равен -210=-102. Под него отведено 9 бит, то смещение будет равно 011111111. Поэтому в порядок запишется (0111111112-102=011111101). Поэтому следующий шаг к ответу будет.
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Мантисса у нашего числа получилась 1.1. Откинем первую единицу, получим .1. Это число дополним нулями с конца что бы оно занимало 22 разряда (32 - 1 - 9 = 22). Поэтому ответ будет
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Для удобства запишем в 16ричной системе: 3F60000016.
Если машина старшеконечная, то в памяти ЭВМ байты будут распологаться в таком порядке: 0000603F16