Quando USAGE NATIONAL está em vigor para um item de dados de ponto flutuante, cada posição de caractere PICTURE (exceto para v, se usado) leva 2 bytes de
armazenamento.
Os itens são armazenados como caracteres nacionais (UTF-16).
Os itens de ponto flutuante externo que possuem USAGE NATIONAL são chamados de itens de dados de ponto flutuante nacional.
As regras existentes para exibir itens de ponto flutuante se aplicam a itens nacionais de ponto flutuante.
No exemplo a seguir, COMPUTE-RESULT-N é um item de ponto flutuante nacional:
05 COMPUTE-RESULT-N PIC -9V9(9)E-99 USAGE NATIONAL.
Se COMPUTE-RESULT-N for exibido, os sinais aparecem conforme descrito acima para COMPUTE-RESULT, mas em caracteres nacionais.
Em vez disso, para exibir COMPUTE-RESULT-N em caracteres EBCDIC, direcione-o para o console:
DISPLAY COMPUTE-RESULT-N UPON CONSOLE
Você não pode usar a cláusula VALUE para itens de ponto flutuante externos.
Como acontece com os números decimais externos, os números de ponto flutuante externos devem ser convertidos (pelo compilador) em uma representação interna de seu
valor numérico antes de serem usados ??em operações aritméticas.
Se você compilar com a opção padrão ARITH (COMPAT), os números de ponto flutuante externos são convertidos para o formato de ponto flutuante longo (64 bits).
Se você compilar com ARITH (EXTEND), eles serão convertidos para o formato de ponto flutuante de precisão estendida (128 bits).
Itens binários (COMP)
BINARY, COMP e COMP-4 são sinônimos.
Os números de formato binário ocupam 2, 4 ou 8 bytes de armazenamento.
Se a cláusula PICTURE especifica que um item é assinado, o bit mais à esquerda é usado como o sinal operacional.
Um número binário com uma descrição PICTURE de quatro ou menos dígitos decimais ocupa 2 bytes; cinco a nove dígitos decimais, 4 bytes; e 10 a 18 dígitos decimais,
8 bytes.
Itens binários com nove ou mais dígitos requerem mais manuseio por parte do compilador.
Testá-los para a condição SIZE ERROR e arredondamento é mais complicado do que com outros tipos.
Você pode usar itens binários, por exemplo, para índices, subscritos, opções e operandos aritméticos ou resultados.
Use a opção do compilador TRUNC (STD | OPT | BIN) para indicar como os dados binários (BINARY, COMP ou COMP-4) devem ser truncados.
Itens binários nativos (COMP-5)
Os itens de dados que você declara como USAGE COMP-5 são representados no armazenamento como dados binários.
No entanto, ao contrário dos itens USAGE COMP, eles podem conter valores de magnitude até a capacidade da representação binária nativa (2, 4 ou 8 bytes) em vez de
serem limitados ao valor implícito pelo número de 9s na cláusula PICTURE.
Quando você move ou armazena dados numéricos em um item COMP-5, o truncamento ocorre no tamanho do campo binário em vez de no limite de tamanho COBOL PICTURE.
Quando você faz referência a um item COMP-5, o tamanho do campo binário completo é usado na operação.
COMP-5 é, portanto, particularmente útil para itens de dados binários que se originam em programas não COBOL, onde os dados podem não estar em conformidade com
uma cláusula COBOL PICTURE.
A tabela abaixo mostra os intervalos de valores possíveis para itens de dados COMP-5.
Tabela 1. Variações no valor dos itens de dados COMP-5
| PICTURE |
Representação de armazenamento |
Valores numéricos |
| S9(1) a S9(4) |
Binary halfword (2 bytes) |
-32768 a +32767 |
| S9(5) a S9(9) |
Binary fullword (4 bytes) |
-2,147,483,648 a +2,147,483,647 |
| S9(10) a S9(18) |
Binary doubleword (8 bytes) |
-9,223,372,036,854,775,808 a +9,223,372,036,854,775,807 |
| 9(1) a 9(4) |
Binary halfword (2 bytes) |
0 a 65535 |
| 9(5) a 9(9) |
Binary fullword (4 bytes) |
0 a 4,294,967,295 |
| 9(10) a 9(18) |
Binary doubleword (8 bytes) |
0 a 18,446,744,073,709,551,615 |
Você pode especificar a escala (ou seja, posições decimais ou posições inteiras implícitas) na cláusula PICTURE dos itens COMP-5.
Se você fizer isso, você deve dimensionar adequadamente as capacidades máximas listadas acima.
Por exemplo, um item de dados que você descreve como PICTURE S99V99 COMP-5 é representado no armazenamento como uma meia palavra binária e oferece suporte a uma
faixa de valores de -327,68 a +327,67.
Literais grandes em cláusulas VALUE:
Os literais especificados nas cláusulas VALUE para itens COMP-5 podem, com algumas exceções, conter valores de magnitude até a capacidade da representação binária
nativa.
Consulte a Referência de linguagem Enterprise COBOL para as exceções.
Independentemente da configuração da opção do compilador TRUNC, os itens de dados COMP-5 se comportam como os dados binários em programas compilados com TRUNC (BIN).
Itens decimais compactados (COMP-3)
PACKED-DECIMAL e COMP-3 são sinônimos.
Os itens decimais compactados ocupam 1 byte de armazenamento para cada dois dígitos decimais que você codificar na descrição PICTURE, exceto que o byte mais à
direita contém apenas um dígito e o sinal.
Este formato é mais eficiente quando você codifica um número ímpar de dígitos na descrição de PICTURE, de forma que o byte mais à esquerda seja totalmente
utilizado.
Itens decimais compactados são tratados como números de ponto fixo para fins aritméticos.
Itens de ponto flutuante interno (COMP-1 e COMP-2)
COMP-1 refere-se ao formato de ponto flutuante curto e COMP-2 refere-se ao formato de ponto flutuante longo, que ocupa 4 e 8 bytes de armazenamento, respectivamente.
O bit mais à esquerda contém o sinal e os próximos 7 bits contêm o expoente; os 3 ou 7 bytes restantes contêm a mantissa.
Os itens de dados COMP-1 e COMP-2 são armazenados no formato hexadecimal zSeries®.
© Copyright IBM Corp.