Elementos computacionales
Un elemento computacional es un valor utilizado en operaciones aritméticas. Debe ser numérico. Si un elemento de grupo se describe con un uso computacional, los elementos elementales dentro del grupo tienen ese uso.
La longitud máxima de un elemento de cálculo es de 18 dígitos decimales, excepto para un elemento PACKED-DECIMAL. Si la opción de compilador ARITH (COMPAT) está en vigor, la longitud máxima de un elemento PACKED-DECIMAL es de 18 dígitos decimales. Si la opción de compilador ARITH (EXTEND) está en vigor, la longitud máxima de un elemento PACKED-DECIMAL es de 31 dígitos decimales.
La PICTURE de un elemento computacional sólo puede contener:
- 9
- Una o más posiciones de caracteres numéricos
- S
- Un signo operativo
- V
- Una coma decimal implícita
- C
- Una o más posiciones de escalado decimal
Los elementos COMPUTATIONAL-1 y COMPUTATIONAL-2 (coma flotante interna) no pueden tener series PICTURE.
- BINARY
- Especificado para elementos de datos binarios. Estos elementos tienen un equivalente decimal que consta de los dígitos decimales del 0 al 9, más un signo. Los números negativos se representan como el complemento de los dos del número positivo con el mismo valor absoluto.
La cantidad de almacenamiento ocupada por un elemento binario depende del número de dígitos decimales definidos en su cláusula PICTURE:
Dígitos en cláusula PICTURE Almacenamiento ocupado 1 a 4 2 bytes (media palabra) 5 a 9 4 bytes (palabra completa) 10 a 18 8 bytes (palabra doble) Los datos binarios son big-endian: el signo operativo está contenido en el bit situado más a la izquierda.
Los elementos de datos BINARY, COMPUTATIONAL y COMPUTATIONAL-4 pueden verse afectados por la opción de compilador TRUNC de . Para más información sobre el efecto de esta opción del compilador, , consulte TRUNC en la página Enterprise COBOL Guía de programación.
- DECIMAL EMPAQUETADO
- Se especifica para elementos decimales internos. Este elemento aparece en el almacenamiento en formato decimal empaquetado. Hay dos dígitos para cada posición de carácter, excepto para la posición de carácter final, que está ocupada por el dígito de orden inferior y el signo. Un elemento de este tipo puede contener cualquiera de los dígitos del 0 al 9, más un signo, que representa un valor que no supere los 18 dígitos decimales, a menos que la opción de compilador ARTIH (EXTEND) esté en vigor, en cuyo caso se podrían representar hasta 31 dígitos.
La representación de signo utiliza la misma configuración de bits que la representación de signo de 4 bits en campos decimales con zona. Para más detalles, consulte Representación de signos de datos zonales y decimales empaquetados en la dirección Enterprise COBOL Guía de programación.
El uso más eficiente de los elementos de datos decimales empaquetados es definirlos con un número impar de dígitos, para utilizar todos los bits. Esto también puede dar como resultado un código generado más eficiente. Para averiguar si tiene elementos de datos decimales empaquetados con un número par de dígitos en el programa, puede utilizar la opción de compilador RULES (NOEVENPACK). Para más detalles, consulte las REGLAS en la Guía de programación Enterprise COBOL.
- COMPUTATIONAL o COMP (binario)
- Es el equivalente a BINARY. La frase COMPUTATIONAL es sinónimo de BINARY.
- COMPUTATIONAL-1 o COMP-1 (coma flotante)
- Especificado para elementos de coma flotante internos (precisión única). Los elementos COMP-1 tienen una longitud de 4 bytes.
- COMPUTATIONAL-2 o COMP-2 (coma flotante larga)
- Especificado para elementos de coma flotante internos (precisión doble). Los elementos COMP-2 tienen una longitud de 8 bytes.
- COMPUTATIONAL-3 o COMP-3 (decimal interno)
- Es el equivalente de PACKED-DECIMAL.
- COMPUTATIONAL-4 o COMP-4 (binario)
- Es el equivalente a BINARY.
- COMPUTATIONAL-5 o COMP-5 (binario nativo)
- Estos elementos de datos se representan en el almacenamiento como datos binarios. Los elementos de datos pueden contener valores hasta la capacidad de la representación binaria nativa (2, 4 u 8 bytes), en lugar de limitarse al valor implícito por el número de líneas en la imagen para el elemento (como es el caso de los datos USAGE BINARY). Cuando se mueven o almacenan datos numéricos en un elemento de COMP-5, el truncamiento se produce en el tamaño del campo binario en lugar de en el límite de tamaño de imagen de COBOL. Cuando se hace referencia a un elemento COMP-5, en la operación se utiliza el tamaño de campo binario completo.
Cuando un emisor binario de uso COMP-5 participa en una operación con un receptor que no es numérico, el emisor se trunca al número de dígitos de su cláusula PICTURE.
La opción de compilador TRUNC (BIN) hace que todos los elementos de datos binarios (USAGE BINARY, COMP, COMP-4) se manejen como si se hubieran declarado USAGE COMP-5.
La tabla siguiente muestra varias series de caracteres de imagen, la representación de almacenamiento resultante y el rango de valores para los elementos de datos descritos con USAGE COMP-5.
Imagen Representación de almacenamiento Valores numéricos S9(1) a S9(4) Media palabra binaria (2 bytes) -32768 a +32767 S9(5) a S9(9) Palabra completa binaria (4 bytes) -2 de +2.147.483.648 a +2.147.483.647 S9(10) a S9(18) Palabra doble binaria (8 bytes) -9,223.372.036.854.775.808 hasta +9.223.372.036.854.775.807 9(1) a 9(4) Media palabra binaria (2 bytes) 0 a 65535 9(5) a 9(9) Palabra completa binaria (4 bytes) 0 a 4.294.967.295 9(10) a 9(18) Palabra doble binaria (8 bytes) 0 a 18.446.744.073.709.551.615 La imagen de un elemento de datos COMP-5 puede especificar un factor de escala (es decir, posiciones decimales o posiciones enteras implícitas). En este caso, las capacidades máximas que figuran en la tabla mencionada deben escalarse adecuadamente. Por ejemplo, un elemento de datos descrito con PICTURE S99V99 COMP-5 se representa en el almacenamiento como una media palabra binaria y da soporte a un rango de valores de -327.68 a +327.67.
NOTA DE USO: Cuando se utiliza la frase ON SIZE ERROR en una sentencia aritmética y se define un receptor con USAGE COMP-5, el valor máximo que puede contener el receptor es el valor implícito en la serie de caracteres PICTURE decimal del elemento. Cualquier intento de almacenar un valor mayor que este máximo dará como resultado una condición de error de tamaño.