Este artículo necesita citas adicionales para su verificación . ( marzo de 2008 ) ( Aprenda cómo y cuándo eliminar este mensaje de plantilla ) |
Un overpunch firmado es un código que se utiliza para almacenar el signo de un número cambiando el último dígito. Se utiliza en datos de caracteres en mainframes IBM en lenguajes como COBOL , PL / I y RPG . [1] Su propósito es guardar un carácter que de otro modo sería utilizado por el dígito de signo. [2] El código se deriva del Código de tarjeta perforada de Hollerith , donde se pueden ingresar tanto un dígito como un signo en la misma columna de la tarjeta. Se llama overpunch porque el dígito en esa columna tiene un golpe de 12 o un golpe de 11 encima para indicar el signo. Los datos de caracteres que pueden contener superposiciones se denominan decimales divididos en zonas .
La PACK
instrucción en máquinas con arquitectura IBM System / 360 convierte el signo de un número decimal dividido en zonas cuando se convierte a decimal empaquetado , y la UNPK
instrucción correspondiente establecerá el signo sobrepunchado correcto de su salida decimal dividida en zonas. [3]
Soporte de idiomas [ editar ]
PL / I [ editar ]
PL / I usa el PICTURE
atributo para declarar datos decimales divididos en zonas con un sobrepunchado firmado. Cada carácter en una imagen numérica V
, excepto , que indica la posición del punto decimal asumido, representa un dígito. Un carácter de imagen de T
, I
o R
indica una posición de dígito que puede contener una superposición. T
indica que la posición contendrá {–I si es positivo y} –R si es negativo. I
indica que la posición contendrá {–I si es positivo y 0-9 si es negativo. R
indica que la posición contendrá 0–9 si es positivo y} –R si es negativo.
Por ejemplo, PICTURE 'Z99R'
describe un campo numérico de cuatro caracteres. La primera posición puede estar en blanco o contendrá un dígito del 0 al 9. Las siguientes dos posiciones contendrán dígitos y la cuarta posición contendrá 0–9 para un número positivo y} –R para negativo. [4]
Asignar el valor 1021 a la imagen de arriba almacenará los caracteres "1021" en la memoria; la asignación de -1021 almacenará "102J".
COBOL [ editar ]
COBOL utiliza el carácter de imagen 'S' para los USAGE IS DISPLAY
datos sin SIGN IS SEPARATE CHARACTER
indicar un sobrepicado. SIGN IS LEADING
indica que el overpunch está sobre el primer carácter del campo, el valor predeterminado SIGN IS TRAILING
, lo ubica sobre el último carácter. SIGN IS TRAILING
es el predeterminado. [5]
C / C ++ [ editar ]
El lenguaje C no tiene provisión para decimales por zonas. El compilador IBM ILE C / C ++ para System i proporciona funciones para la conversión entre int
o double
y decimal con zona: [6]
- QXXDTOZ () - Convertir doble a decimal de zona
- QXXITOZ () - Convertir entero en decimal zonificado
- QXXZTOD () - Convertir decimal de zona a doble
- QXXZTOI () - Convertir decimal de zona a entero
Los códigos [ editar ]
Carácter EBCDIC | Dígito | Señal | Código de tarjeta [7] |
---|---|---|---|
{ | 0 | + | 12-0 |
A | 1 | + | 12-1 |
B | 2 | + | 12-2 |
C | 3 | + | 12-3 |
D | 4 | + | 12-4 |
mi | 5 | + | 12-5 |
F | 6 | + | 12-6 |
GRAMO | 7 | + | 12-7 |
H | 8 | + | 12-8 |
I | 9 | + | 12-9 |
} | 0 | - | 11-0 |
J | 1 | - | 11-1 |
K | 2 | - | 11-2 |
L | 3 | - | 11-3 |
METRO | 4 | - | 11-4 |
norte | 5 | - | 11-5 |
O | 6 | - | 11-6 |
PAG | 7 | - | 11-7 |
Q | 8 | - | 11-8 |
R | 9 | - | 11-9 |
Ejemplos [ editar ]
10} es -100
45A es 451
Los puntos decimales suelen estar implícitos y no se indican explícitamente en el texto. Usando números con dos dígitos decimales:
1000} es -100,00
Representación ASCII [ editar ]
La representación COBOL de caracteres de sobrepunchado firmados "no está estandarizada en ASCII, y los diferentes compiladores usan diferentes códigos de sobrepunchado". En la mayoría de los casos, "la representación no es la misma que el resultado de convertir un campo Firmado EBCDIC a ASCII con una tabla de traducción". [8] Los compiladores PL / I en sistemas ASCII usan el mismo conjunto de caracteres que en EBCDIC para representar sobrepunchados.
Referencias [ editar ]
- ^ IBM Corporation (junio de 1994). Referencia de RPG / 400 (PDF) . pag. 403 . Consultado el 7 de agosto de 2018 .
- ^ "Charla técnica, tutoriales de COBOL, conversión de EBCDIC a ASCII de campos firmados" . Consultado el 15 de marzo de 2008 .
- ^ IBM Corporation (octubre de 2001). z / Principios de funcionamiento de la arquitectura (2ª ed.). págs. 7–112, 7–158 . Consultado el 7 de agosto de 2018 .
- ^ IBM Corporation (junio de 1995). IBM PL / I para MVS & VM Language Reference (PDF) . págs. 294-296 . Consultado el 2 de agosto de 2018 .
- ^ Corporación IBM. "Enterprise COBOL para z / OS, V4.2, referencia de lenguaje" . Centro de conocimiento de IBM . Consultado el 1 de mayo de 2020 .
- ^ Corporación IBM. "Funciones de biblioteca" . Centro de conocimientos de IBM . Consultado el 1 de mayo de 2020 .
- ^ IBM Corporation (1989). Resumen de referencia de la arquitectura extendida de System / 370 . pag. 41.
- ^ "Conversión de EBCDIC a ASCII de campos firmados" . Especialistas en conversión de medios DISC . Consultado el 29 de noviembre de 2018 .