Olá!
Ao trabalhar com variáveis numéricas compactadas, ocorre a necessidade de interpretar qual a quantidade que será utilizada no armazenamento, e também se o intervalo de valores suportados pela variável é suficiente para a aplicação.
No COBOL há os seguintes formatos de itens compactados:
- COMPUTATIONAL ou COMP (binário)
- Este é equivalente ao binário, a palavra Computational é sinônimo de binário.
- COMPUTATIONAL-1 ou COMP-1 (ponto flutuante)
- Utilizado para itens com ponto flutuante interno com precisão única, esses possuem 4 bytes de comprimento.
- COMPUTATIONAL-2 ou COMP-2 (ponto flutuante longo)
- Utilizado para itens com ponto flutuante interno com precisão dupla, esses possuem 8 bytes de comprimento.
- COMPUTATIONAL-3 ou COMP-3 (decimal interno)
- Equivalente ao PACKED-DECIMAL, apresentado no post: Variáveis numéricas (Computational items).
- COMPUTATIONAL-4 ou COMP-4 (binário)
- Equivalente ao um item binário.
- COMPUTATIONAL-5 ou COMP-5 (binário nativo)
- Os dados armazenados em COMP-5 possuem o truncamento no tamanho do campo binário, em vez do limite especificado pela PICTURE na declaração Cobol.
- Quando um item COMP-5 é referenciado, todo o campo binário é utilizado na operação.
- A opção do compilador TRUNC(BIN) faz com que todos os itens de dados binários (USAGE BINARY, COMP, COMP-4) sejam tratados como itens COMP-5.
A tabela abaixo mostra o armazenamento ocupado e intervalo de valores suportados para cada PICTURE de um item COMP-5.
A PICTURE para um item COMP-5 pode ser definida com o fator de escala, isto é, posições inteiras ou decimais implícitas, por exemplo a declaração PICTURE S99V99 COMP-5 é representado com uma halfword binária. Assim, os valores suportados apresentados na tabela devem ser dimensionados adequadamente para quando ocorrer essa situação.
FELIPE BARBOSA FERREIRA
Até o próximo post!