Государственное Образовательное Учреждение высшего профессионального образования Московский Авиационный Институт Государственный Технический Университет "маи" кафедра 304. конспект
Вид материала | Конспект |
СодержаниеПредставление данных в ПЭВМ Целые числа Двоично-десятичные числа (BCD) |
- Инновационной образовательной программы, 1090.47kb.
- Самостоятельная работа 2 часа в неделю всего часов, 28.69kb.
- Самостоятельная работа 2 часа в неделю всего часов, 45.89kb.
- Самостоятельная работа 2 часа в неделю всего часов, 73.46kb.
- Самостоятельная работа 2 часа в неделю всего часов, 46.6kb.
- Самостоятельная работа 2 часа в неделю всего часов, 41.37kb.
- Самостоятельная работа 2 часа в неделю всего часов, 41.08kb.
- Самостоятельная работа 2 часа в неделю всего часов, 64.33kb.
- Самостоятельная работа 2 часа в неделю всего часов, 29.72kb.
- Самостоятельная работа 2 часа в неделю всего часов, 33.42kb.
Представление данных в ПЭВМ
Целые числа
ЭВМ поддерживает работу с числами, длиной в :
- байт (1Б);
- слово (2Б);
- двойное слово (4Б);
Выделяются 2 типа целых чисел:
- беззнаковые (неотрицательные);
- числа со знаком.
Это позволяет использовать 2 диапазона чисел. Например, для 1 байта
- беззнаковое целое от 0 до 255 (28 – 1),
- целое со знаком по модулю от 0 до 127 (27 – 1).
а) Беззнаковые числа представляются в двоичной системе, занимая все разряды ЯП.
Например, для десятичного числа 98 = 62h = 01100010B требуется 1Б, можно использовать слово 0062h (2Б). Слово в памяти располагается в польской инверсной записи, а в регистрах – в естественном порядке байтов.
Для чисел длиной в двойное слово – аналогично.
Например, число 12345678h в оперативной памяти по адресу w располагается следующим образом:
| y | y+1 | y+2 | y+3 | |
| 78 | 56 | 34 | 12 | |
б) Целые числа со знаком представляются в дополнительном коде, т.е.
Х доп.= | Х, Х>0 |
2к-|X|, X<0 , |
где k – разрядность ЯП.
Например, для числа -98 = 9Eh (1 Б)= FF9Eh (слово 2Б).
Для облегчения перевода в дополнительный код используется алгоритм:
- все цифры, кроме младшей заменяются инверсией, т.е. для 16-ричной системы счисления (15 – {цифра});
- последняя (младшая) цифра заменяется дополнением, т.е. (16 – {цифра});
- правые нулевые разряды не изменяются, и младшим разрядом считается самый правый ненулевой разряд.
Обратный перевод в прямой код из дополнительного выполняется по тому же алгоритму.
В памяти числа длиной в слово или двойное слово хранятся в польской инверсной записи, причем знаковый разряд попадает в последний байт.
-
Двоично-десятичные числа (BCD)
Существуют классы задач, для которых характерен ввод и выводом больших массивов числовых данных с последующим применением небольшого числа арифметических операций. Для этого случая используется двоично-десятичное представление чисел (BCD – Binary Coded Decimal), которое образуется следующим образом:
- каждая десятичная цифра представляется двоичной тетрадой, т.е. используются цифры от 0 до 9, а цифры от A до F - не используются.
Имеется 2 разновидности BCD-формата:
а) неупакованный формат – в каждом байте в младшей тетраде размещается код десятичной цифры, а значение старшей тетрады байта игнорируется. Этот формат используется при вводе и выводе чисел, и содержимое старшей тетрады определяется в соответствии с ASCI I.
Например, для положительного числа получим код
9806 хххх1001хххх1000хххх0000хххх0110 (4 Б);
б) упакованный формат – в каждом байте хранятся две цифры.
Например, для того же числа получим код
9806 1001100000000110 (2 Б).
Отрицательные числа в BCD представляются в дополнительном коде. Алгоритм формирования дополнительного кода описан выше, но для BCD формата имеет вид:
- все цифры, кроме младшей заменяются инверсией, т.е. (9 – {цифра});
- последняя (младшая) цифра заменяется дополнением, т.е. (10 – {цифра});
- правые нулевые разряды не изменяются, и младшим разрядом считается самый правый ненулевой разряд.
Знак хранится и обрабатывается в отдельном байте, который заполнен нулями, кроме старшего бита, который для отрицательного числа устанавливается в 1.
Например, для числа 561 в упакованном формате получим
561 00000101 01100001 (2 Б)
для отрицательного числа
[-567]доп = | 10000000 | 1001 0100 | 0011 1001 |
| знак | 9 4 | 3 9 |
В памяти числа хранятся в польской инверсной записи(LEM)
- 0>