Разница между COMP и COMP3

Опубликовано: 12 Сентября, 2022

Внутри компьютер хранит данные в более чем одной форме. Язык Кобол помогает программисту указать внутреннее представление данных в соответствии с потребностями. В Cobol доступны две внутренние формы:

  1. ОТОБРАЖАТЬ -
    Это внутреннее представление данных по умолчанию. Любой тип данных может быть указан во внутреннем представлении DISPLAY.
  2. ВЫЧИСЛИТЕЛЬНЫЙ –
    Только числовые данные могут быть указаны с ВЫЧИСЛИТЕЛЬНЫМ внутренним представлением. Существует много типов ВЫЧИСЛИТЕЛЬНОГО представления, таких как COMP, COMP-1, COMP-2, COMP-3 и т. д.

Предложение USAGE используется для указания типа внутреннего представления. Вы можете использовать любой номер уровня для предложения USAGE, кроме 66 или 88.

Syntax:
        USAGE IS {COMPUTATIONAL/COMP/DISPLAY}.

1. КОМП:
Пункт об использовании применим только к числовым элементам данных. Он представляет данные исключительно в двоичной форме. и может хранить данные либо в полуслове, либо в полном слове в зависимости от размера данных. Мы можем использовать только 9 и S во время объявления данных:

  • 9 используется для хранения объявленных целочисленных переменных.
  • S используется для хранения знака.

2. КОМП3:
Пункт об использовании применим только к числовым элементам данных. Он хранит данные в упакованном десятичном виде. Он использует один самый правый бит для хранения знака, независимо от того, использовали ли мы S в предложении PIC или нет. Шестнадцатеричные числа C и F сохраняют положительный знак в крайнем правом бите, а D сохраняет отрицательный знак в крайнем правом бите. Мы можем использовать 9, S и V в предложении PIC во время объявления данных.

V используется для хранения десятичной точки в определенном месте элемента данных.

Разница между COMP и COMP3:

КОМП

КОМП3

Он представляет данные в чистом двоичном виде. Он представляет данные в упакованном десятичном виде.
Мы можем использовать только 9 и S в пункте PIC. Мы можем использовать 9 , S , V в пункте PIC.
Использование COMP сохраняет данные в виде полуслова или полного слова, в зависимости от размера данных. Использование COMP3 сохраняет 1 цифру в полубайте (т.е. 4 бита), а отдельный 1 бит зарезервирован для знака, который хранится в правой части данных.

Память, которая будет занята данными в соответствии с длиной, предопределена, т.е.:

  • 9(01) – 9(04): 16 бит (2 байта)
  • 9(05) – 9(09): 32 бита (4 байта)
  • S9(10) – S9(18): 64 бита (8 байтов)

Память, занимаемая данными, определяется по следующей формуле:

  • (длина переменной + 1)/2 байта.

Пример: Память, занимаемая S9(3):

(3+1)/2 т.е. 2 байта.

COMP не занимает дополнительного места для хранения знака. В COMP3 вход обязательно хранится справа и поэтому занимает дополнительное место.
 Пример:
        02 CompVariable PIC 9 USAGE IS COMP.
        02 CompVariable1 PIC S9(5) USAGE IS COMP.
 Пример:
        02 Переменная PIC 9 USAGE IS COMP3.
        02 Variable1 PIC S9(10) USAGE IS COMP3.
        02 Variable2 PIC S9V99 USAGE IS COMP3.