Ver Mensaje Individual
  #2
Antiguo 29 de enero de 2016, 09:19
Kuk
Administrador
Última Actividad 21.09.2026 18:24
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

A todo esto puedo añadir lo siguiente: COMP y COMP-4 equivalen y son campos binarios independientes de la máquina. Pero hay una diferencia entre los binarios COBOL y el binario "nativo" que es el COMP-5 y sí es dependiente de la máquina. A diferencia de binarios COBOL, el binario "nativo" puede contener cifras superiores al valor PIC.

Por ejemplo, un PIC S9(4) COMP puede contener de -9999 hasta 9999. Sin embargo PIC S9(4) COMP-5 puede contener de -32768 hasta 32767.

Para comunicarnos con el SO u otro software como rutinas C/C++ etc., normalmente se debe usar el binario nativo COMP-5.

Resumiendo:

Código COBOL:
  1. Tipo                COBOL              Tamaño   Valores posibles
  2. -----------------------------------------------------------------------------------------------------------
  3. SHORT               PIC S9(4) COMP-5   2 Bytes  De -32,768                    a 32,767
  4. USHORT              PIC  9(4) COMP-5   2 Bytes  De 0                          a 65,535
  5. INT                 PIC S9(9) COMP-5   4 Bytes  De -2,147,483,648             a 2,147,483,647
  6. UINT                PIC  9(9) COMP-5   4 Bytes  De 0                          a 4,294,967,295
  7. INT64               PIC S9(18) COMP-5  8 Bytes  De –9,223,372,036,854,775,808 a 9,223,372,036,854,775,807
  8. UINT64              PIC  9(18) COMP-5  8 Bytes  De 0                          a 18,446,744,073,709,551,615
  9. LONG  en Windows    INT                4 Bytes  De -2,147,483,648             a 2,147,483,647
  10. ULONG en Windows    UINT               4 Bytes  De 0                          a 4,294,967,295
  11. LONG  en Linux x64  PIC S9(18) COMP-5  8 Bytes  De –9,223,372,036,854,775,808 a 9,223,372,036,854,775,807
  12. ULONG en Linux x64  PIC  9(18) COMP-5  8 Bytes  De 0                          a 18,446,744,073,709,551,615
  13. FLOAT               COMP-1             4 Bytes  De 1.2E-38                    a 3.4E+38  
  14. DOUBLE              COMP-2             8 Bytes  De 2.3E-308                   a 1.7E+308
  15. *     en x86        POINTER            4 Bytes  De -2,147,483,648             a 2,147,483,647
  16. *     en x64        POINTER            8 Bytes  De –9,223,372,036,854,775,808 a 9,223,372,036,854,775,807



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita