COMP-1 на языке COBOL

Опубликовано: 9 Января, 2023

В COMP Usage данные будут храниться в полной двоичной форме. В зависимости от использования данные будут храниться либо в ПОЛОВИННОМ, либо в ПОЛНОМ СЛОВЕ. ПОЛУСЛОВО, которое представляет собой не что иное, как 2-байтовые данные в диапазоне от -32 768 до +32 767, а ПОЛНОЕ СЛОВО - это не что иное, как 4 байта данных в диапазоне от -2 147 483 648 до +2 147 483 648.

Что касается COMP-1, то в COMP-1 данные будут храниться одним словом в форме с плавающей запятой. На самом деле он будет представлен в шестнадцатеричной форме, которая подходит для всех типов арифметических операций.

Нам не нужно специально использовать предложение PICTURE для переменных COMP-1, потому что PIC поможет создать связь между именем данных и типом данных, но в COMP-1 дата является числовой, а тип данных уже предопределен как однословная плавающая форма.

Пример:

Cobol




IDENTIFICATION DIVISION.
PROGRAM-ID. Comp1-Code.
ENVIRONMENT DIVISION.
DATA DIVISION.
    WORKING-STORAGE SECTION.
        77 WS-VAL1  PIC 9(2USAGE IS COMP.
        77 WS-VAL2  PIC 9(3USAGE IS COMP.
        77 WS-VAL3  PIC 9(6USAGE IS COMP.
        77 WS-VAL4  USAGE IS COMP-1.
PROCEDURE DIVISION.
    DISPLAY "COMP USAGE DISPLAY".
        MOVE 99 TO WS-VAL1.
    DISPLAY "VALUE OF WS-VAL1 IS: " WS-VAL1.
    DISPLAY "LENGTH OF WS-VAL1: " LENGTH OF WS-VAL1.
        MOVE 99 TO WS-VAL2.
    DISPLAY "VALUE OF WS-VAL2 IS: " WS-VAL2.
    DISPLAY "LENGTH OF WS-VAL2: " LENGTH OF WS-VAL2.
        MOVE 99 TO WS-VAL3.
    DISPLAY "VALUE OF WS-VAL3 IS: " WS-VAL3.
    DISPLAY "LENGTH OF WS-VAL3: " LENGTH OF WS-VAL3.
    DISPLAY "                                       "
    DISPLAY "COMP-1 USAGE DISPLAY".
        MOVE 99 TO WS-VAL4.
    DISPLAY "VALUE OF WS-VAL4 IS: " WS-VAL4.
    DISPLAY "LENGTH OF WS-VAL4: " LENGTH OF WS-VAL4
    DISPLAY "                                       "
STOP RUN.

Выход:

Объяснение:

В этом примере мы показываем сравнительный пример для COMP и COMP-1. Итак, мы видим, что длина переменных COMP варьируется в зависимости от входных данных, но длина переменной COMP-1 составляет 4 байта, а также мы не указываем пункт PICTURE.