Формы представления и преобразования данных

 

Почти вся информация вне ЭВМ представляется в символьной форме. В этой форме информация перфорируется на картах, в этой форме она выдается устройством печати. Внутренней формой представления символьных данных является код EBCDIC, который был нами рассмотрен в разделе "Символьная обработка". Числовые данные в машине имеют двоичную форму, удобную для выполнения арифметических операций.

Сейчас необходимо ответить на следующий вопрос: каким образом производится перевод числовой информации, представленной в коде EBCDIC, в двоичную форму и наоборот? Ранее мы возлагали выполнение подобных преобразований на макрокоманды RWD и WWD. В данном разделе будет рассмотрен способ, который позволит нам обойтись без этих специальных средств.

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

 

Существуют следующие общепринятые форматы представления числовых данных:

  1. Код Холлерита
  2. EBCDIC
  3. Зонный десятичный
  4. Упакованный десятичный
  5. Двоичный

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

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

PACK D1(L1.B1),

PACK

Преобразовать (D2 + (B2)L1 D2(L2,B2) в упакованный формат в виде (D1+(B1))LI

UNRK D1(L1.B1), D2(L2,B2)

UNPacK

Преобразовать (D2+(B2))L3 в зонный формат в виде (D1 + B1))L1

CVB R1,D2(X2, B2)

ConVert to Binary

R1?двоичный эквивалент (D2 + (X2) + (B2))D

CVD R1,D2(X2, B2)

ConVert to Decimal

Упакованный десятичный эквивалент (R1)? D2+(Х2)+(В2)

EX R1,D2(X2, B2)

EXecute

Выполнить команду по адресу D2 + (X2) + (B2)

 

 

Это интересно