서명된 오버펀치
Signed overpunch컴퓨팅에서 부호화된 오버펀치는 마지막 자리(통상)를 변경함으로써 숫자 기호를 저장하는 부호화 방식입니다.COBOL, PL/I 및 [1]RPG와 같은 언어에 의해 IBM 메인프레임의 문자 데이터에 사용됩니다.그 목적은 기호 [2]숫자가 사용하지 않는 문자를 저장하는 것입니다.이 코드는 Hollerith Punched Card Code에서 파생됩니다.이 코드에서는 숫자와 기호를 모두 같은 카드열에 입력할 수 있습니다.이 컬럼의 숫자는 그 위에 기호를 나타내기 위해 12펀치 또는 11펀치가 있기 때문에 오버펀치라고 불립니다.카드의 상위 3행은 [3]존펀치라고 불립니다.따라서 오버펀치를 포함할 수 있는 숫자 문자 데이터를 존 10진수라고 합니다.
IBM 용어로는 스토리지에서 바이트의 하위 4비트를 디짓이라고 하고 상위 4비트를 [4]존이라고 합니다.숫자 비트에는 0 ~9의 숫자가 포함됩니다.존 비트는 0~9 문자를 형성하는 'F'x' 또는 오버펀치를 포함하는 문자 위치에 양수 또는 음수 값을 나타내는 16진수 값이 포함되어 다른 문자 세트를 형성합니다(A, C, E 및 F 존은 양수 값, B 및 D 음수를 나타냅니다).
그PACKIBM System/360 아키텍처 머신에 대한 명령은 패킹된 십진수로 변환할 때 구역화된 십진수 부호를 변환합니다.UNPKinstruction은 존화된 10진수 [5]출력의 올바른 오버펀치 부호를 설정합니다.
언어 지원
PL/I
PL/I는PICTUREattribute: 부호 있는 오버펀치를 사용하여 구역화된 10진수 데이터를 선언합니다.숫자 사진의 각 문자는 다음을 제외하고V는 가정된 소수점 위치를 나타냅니다.의 그림 캐릭터T,I, 또는R는 오버펀치를 포함할 수 있는 자리 위치를 나타냅니다. T포지션에 양의 경우 {–I, 음의 경우 {–R이 포함됨을 나타냅니다. I포지션에 양의 경우 {–I, 음의 경우 0-9가 포함됨을 나타냅니다. R포지션이 양의 경우 0~9, 음의 경우 {~R)을 포함함을 나타냅니다.
예를들면PICTURE 'Z99R'에, 4 문자의 숫자 필드에 대해 설명합니다.첫 번째 위치는 공백이거나 0 ~9 의 숫자를 포함할 수 있습니다.다음 두 위치에는 숫자가 포함되며, 네 번째 위치에는 양수인 경우 0-9, [6]음수인 경우 {–R이 포함됩니다.
위 그림에 값 1021을 할당하면 "1021" 문자가 메모리에 저장되고 -1021을 할당하면 "102J"가 저장됩니다.
코볼
COBOL은 다음과 같이 그림 문자 'S'를 사용합니다.USAGE IS DISPLAY없는 데이터SIGN IS SEPARATE CHARACTER오버펀치를 나타냅니다. SIGN IS LEADING오버펀치가 필드의 첫 번째 문자를 넘었음을 나타냅니다. SIGN IS TRAILING는 마지막 문자 위에 위치시킵니다. SIGN IS TRAILING는 [7]디폴트입니다.
C/C++
C 언어에는 구역화된 10진수에 대한 프로비저닝이 없습니다.IBM ILE C/C++ 컴파일러 System i는 다음과 같은 변환 함수를 제공합니다.int또는double및 구분된 10진수:[8]
- QXXDTOZ(): 더블을 10진수로 변환
- QXXITOZ() : 정수를 10진수로 변환
- QXXZTOD(): 존화된 10진수를 2배로 변환합니다.
- QXXZTOI(): 존화된 10진수를 정수로 변환
EBCDIC 오버펀치코드
| EBCDIC 성격 | 숫자 | 서명하다 | 카드코드[9] |
|---|---|---|---|
| { | 0 | + | 12-0 |
| A | 1 | + | 12-1 |
| B | 2 | + | 12-2 |
| C | 3 | + | 12-3 |
| D | 4 | + | 12-4 |
| E | 5 | + | 12-5 |
| F | 6 | + | 12-6 |
| G | 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 |
| M | 4 | - | 11-4 |
| N | 5 | - | 11-5 |
| O | 6 | - | 11-6 |
| P | 7 | - | 11-7 |
| Q | 8 | - | 11-8 |
| R | 9 | - | 11-9 |
예
10}은 -100 입니다.
45A는 451
ASCII 표현
서명된 오버펀치 문자의 표현은 ASCII에서 표준화되지 않았으며 컴파일러마다 다른 오버펀치 코드를 사용합니다.경우에 따라서는 "EBCDIC 서명필드를 변환테이블을 [10]사용하여 ASCII로 변환한 결과와 동일하지 않습니다."문자 코드와 대응하는 디짓의 접속이 없어져도 소스 데이터 호환성을 유지하기 위해서, 같은 경우도 있습니다.
숫자 '1'로 끝나는 EBCDIC 음의 필드는 해당 숫자를 'D1'x, 대문자 'J'로 인코딩합니다. 여기서 숫자는 '1'이고 영역은 음의 필드를 나타냅니다.ASCII 대문자 'J'는 '4A'x'이며, 16진수 값은 숫자 값과 관련이 없습니다.대체 부호화에서는, 이 표현에 소문자 「q」, 「71」x 를 사용합니다.여기서 숫자는 「1」, 존은 「7」입니다.이렇게 하면 오버펀치가 있는 필드를 개별적으로 인식 및 변환해야 하지만 숫자와 대조 시퀀스가 유지됩니다.
예
Gnu COBOL 및 MicroFocus COBOL은 소문자 'p' ~ 'y' 를 사용하여 음의 '0' ~ '9'[11][12] 를 나타냅니다.
ASC 상의 PL/I 컴파일러II 시스템은 오버펀치를 [13]나타내기 위해 EBCDIC과 동일한 문자 집합({, J–R)을 사용합니다.
레퍼런스
- ^ IBM Corporation (June 1994). RPG/400 Reference (PDF). p. 403. Retrieved Aug 7, 2018.
- ^ "Tech Talk, COBOL Tutorials, EBCDIC to ASCII Conversion of Signed Fields". Retrieved 2008-03-15.
- ^ Van Overberghe, Jr., Albert G. (1987). Data Processing Technician Third Class. Naval Education and Training Program. p. 3-8. Retrieved Jan 12, 2022.
- ^ IBM Corporation. IBM System/360 Principles of Operation (PDF). p. 34. Retrieved Jan 12, 2022.
- ^ IBM Corporation (Oct 2001). z/Architecture Principles of Operation (2nd ed.). pp. 7–112, 7–158. Retrieved August 7, 2018.
- ^ IBM Corporation (June 1995). IBM PL/I for MVS & VM Language Reference (PDF). pp. 294–296. Retrieved Aug 2, 2018.
- ^ IBM Corporation. "Enterprise COBOL for z/OS, V4.2, Language Reference". IBM Knowledge Center. Retrieved May 1, 2020.
- ^ IBM Corporation. "Library Functions". IBM Knowkedge Center. Retrieved May 1, 2020.
- ^ IBM Corporation (1989). System/370 Extended Architecture Reference Summary. p. 41.
- ^ "EBCDIC to ASCII Conversion of Signed Fields". DISC Media Conversion Specialists. Retrieved Nov 29, 2018.
- ^ "GnuCOBOL Programmer's Guide". SourceForge. Retrieved Jan 12, 2022.
- ^ "Micro Focus Visual COBOL 5.0 for Visual Studio 2019". Micro Focus. Retrieved Jan 12, 2022.
- ^ Kednos Corporation. "Kednos PL/I for OpenVMS Systems Reference Manual". Kednos.com. Retrieved Jan 12, 2022.