กลับไปหน้าบทความ

อ่าน 3 นาที

เซ็นชื่อทับซ้อน

ในด้าน การคำนวณ การเข้ารหัส แบบ โอเวอร์พันช์ที่มีเครื่องหมาย คือ รูปแบบการเข้ารหัสที่เก็บ เครื่องหมาย ของตัวเลขโดยการเปลี่ยน (โดยปกติ) ตัวเลขหลักสุดท้าย...

เซ็นชื่อทับซ้อน

ในด้านการคำนวณ การเข้ารหัส แบบโอเวอร์พันช์ที่มีเครื่องหมายคือ รูปแบบการเข้ารหัสที่เก็บเครื่องหมายของตัวเลขโดยการเปลี่ยน (โดยปกติ) ตัวเลขหลักสุดท้าย มีการใช้ในข้อมูลอักขระบนเมนเฟรมของ IBM โดยภาษาต่างๆ เช่นCOBOL , PL/IและRPG [ 1 ]จุดประสงค์คือเพื่อประหยัดอักขระที่ปกติจะถูกใช้โดยตัวเลขเครื่องหมาย[ 2 ] รหัสนี้ได้มาจากรหัสบัตรเจาะรู Hollerith ซึ่งสามารถป้อนทั้งตัวเลขและเครื่องหมายในคอลัมน์เดียวกัน ของบัตรได้ เรียกว่าโอเวอร์พันช์เพราะตัวเลขในคอลัมน์นั้นมีรูเจาะ 12 หรือ 11 รูอยู่ด้านบนเพื่อระบุเครื่องหมาย แถวสามแถวบนสุดของบัตรเรียกว่ารูเจาะโซน [ 3 ] ดังนั้นข้อมูลอักขระตัวเลขที่อาจมีโอเวอร์พัน ช์จึงเรียกว่าเลขฐานสิบแบบโซน

ในศัพท์เฉพาะของ IBM บิตสี่บิตล่างสุดของไบต์ในหน่วยความจำเรียกว่าdigitและบิตสี่บิตบนสุดเรียกว่าzone [ 4 ] บิต digit ประกอบด้วยค่าตัวเลข 0–9 บิต zoneประกอบด้วย 'F'x ซึ่งสร้างเป็นอักขระ 0–9 หรือตำแหน่งอักขระที่มี overpunch ประกอบด้วย ค่า เลขฐานสิบหกที่ระบุค่าบวกหรือลบ ซึ่งสร้างเป็นชุดอักขระที่แตกต่างกัน (โซน A, C, E และ F ระบุค่าบวก โซน B และ D ระบุค่าลบ)

คำPACKสั่งบน เครื่อง สถาปัตยกรรม IBM System/360จะแปลงเครื่องหมายของเลขทศนิยมโซนเมื่อแปลงเป็นเลขทศนิยมแพ็คและUNPKคำสั่งที่เกี่ยวข้องจะตั้งค่าเครื่องหมายโอเวอร์พันช์ที่ถูกต้องของเอาต์พุตเลขทศนิยมโซน[ 5 ]

การสนับสนุนด้านภาษา

พีแอล/ไอ

PL/I ใช้PICTUREแอตทริบิวต์เพื่อประกาศข้อมูลทศนิยมแบบแบ่งโซนที่มีเครื่องหมายทับซ้อน แต่ละอักขระในภาพตัวเลข ยกเว้นVซึ่งระบุตำแหน่งของจุดทศนิยมที่สมมติขึ้น จะแทนตัวเลขหนึ่งหลัก อักขระภาพT, I, หรือRระบุตำแหน่งตัวเลขที่อาจมีเครื่องหมายทับซ้อนTระบุว่าตำแหน่งนั้นจะประกอบด้วย {–I ถ้าเป็นบวก และ {–R ถ้าเป็นลบIระบุว่าตำแหน่งนั้นจะประกอบด้วย {–I ถ้าเป็นบวก และ 0-9 ถ้าเป็นลบRระบุว่าตำแหน่งนั้นจะประกอบด้วย 0-9 ถ้าเป็นบวก และ {–R ถ้าเป็นลบ

ตัวอย่างเช่นPICTURE 'Z99R'อธิบายฟิลด์ตัวเลขสี่ตัวอักษร ตำแหน่งแรกอาจว่างเปล่าหรือจะมีตัวเลข 0–9 ตำแหน่งถัดไปสองตำแหน่งจะมีตัวเลข และตำแหน่งที่สี่จะมี 0–9 สำหรับจำนวนบวกและ {–R สำหรับจำนวนลบ[ 6 ]

การกำหนดค่า 1021 ให้กับรูปภาพด้านบนจะจัดเก็บอักขระ "1021" ลงในหน่วยความจำ การกำหนดค่า -1021 จะจัดเก็บ "102J"

โคบอล

COBOL ใช้ตัวอักขระรูปภาพ 'S' สำหรับUSAGE IS DISPLAYข้อมูลที่ไม่มีSIGN IS SEPARATE CHARACTERการระบุการเจาะรูเกินSIGN IS LEADINGระบุว่าการเจาะรูเกินอยู่เหนืออักขระตัวแรกของฟิลด์ ระบุSIGN IS TRAILINGว่าอยู่เหนืออักขระตัวสุดท้ายSIGN IS TRAILINGเป็นค่าเริ่มต้น[ 7 ]

ซี/ซีดับเบิลยู

ภาษา C ไม่มีข้อกำหนดสำหรับเลขฐานสิบโซนคอมไพเลอร์ IBM ILE C/C++ สำหรับSystem iมีฟังก์ชันสำหรับการแปลงระหว่าง เลขฐานสิบ หรือเลขฐานสิบโซน: [ 8 ]intdouble

  • QXXDTOZ() — แปลงค่า Double เป็น Zoned Decimal
  • QXXITOZ() — แปลงจำนวนเต็มเป็น Zoned Decimal
  • QXXZTOD() — แปลง Zoned Decimal เป็น Double
  • QXXZTOI() — แปลง Zoned Decimal เป็นจำนวนเต็ม

รหัสโอเวอร์พุช EBCDIC

อักขระEBCDICตัวเลขเข้าสู่ระบบรหัสบัตร[ 9 ]
{0+12–0
เอ1+12–1
บี2+12–2
ซี3+12–3
ดี4+12–4
อี5+12–5
เอฟ6+12–6
จี7+12–7
ชม8+12–8
ฉัน9+12–9
}0-11–0
เจ1-11–1
เค2-11–2
แอล3-11–3
เอ็ม4-11–4
เอ็น5-11–5
โอ6-11–6
พี7-11–7
คิว8-11–8
อาร์9-11–9

ตัวอย่าง

10} คือ -100 45A คือ 451

การแสดงผลแบบ ASCII

การแสดงอักขระโอเวอร์พันช์ที่มีเครื่องหมาย "ไม่ได้กำหนดมาตรฐานในASCIIและคอมไพเลอร์ต่างๆ ใช้รหัสโอเวอร์พันช์ที่แตกต่างกัน" ในบางกรณี "การแสดงผลจะไม่เหมือนกับผลลัพธ์ของการแปลง ฟิลด์ EBCDIC Signed เป็น ASCII ด้วยตารางการแปล" [ 10 ]ในกรณีอื่นๆ จะเหมือนกัน เพื่อรักษาความเข้ากันได้ของข้อมูลต้นทางโดยสูญเสียความเชื่อมโยงระหว่างรหัสอักขระและตัวเลขที่สอดคล้องกัน

ช่องข้อมูลลบในระบบ EBCDIC ที่ลงท้ายด้วยเลข '1' จะถูกเข้ารหัสเป็น 'D1'x โดยใช้ตัวอักษรพิมพ์ใหญ่ 'J' โดยที่เลข '1' และโซนคือ 'D' เพื่อระบุว่าเป็นช่องข้อมูลลบ ส่วนตัวอักษรพิมพ์ใหญ่ 'J' ในระบบ ASCII จะถูกเข้ารหัสเป็น '4A'x โดยที่ค่าเลขฐานสิบหกไม่มีความสัมพันธ์กับค่าตัวเลข อีกวิธีหนึ่งในการเข้ารหัสจะใช้ตัวอักษรพิมพ์เล็ก 'q' '71'x สำหรับการแสดงผลนี้ โดยที่เลข '1' และโซนคือ '7' วิธีนี้จะรักษาค่าตัวเลขและลำดับการเรียงไว้ แต่ต้องแลกกับการต้องจดจำและแปลงค่าช่องข้อมูลที่มีการเจาะรูทับซ้อนทีละช่อง

ตัวอย่าง

Gnu COBOL และ MicroFocus COBOL ใช้ตัวพิมพ์เล็ก 'p' ถึง 'y' แทนค่าลบ '0' ถึง '9' [ 11 ] [ 12 ]

คอมไพเลอร์ PL/I บนระบบ ASCII ใช้ชุดอักขระเดียวกัน ({, J–R) เช่นเดียวกับ EBCDIC เพื่อแสดงค่าลบ[ 13 ]

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ เซ็นชื่อทับซ้อน

ในด้าน การคำนวณ การเข้ารหัส แบบ โอเวอร์พันช์ที่มีเครื่องหมาย คือ รูปแบบการเข้ารหัสที่เก็บ เครื่องหมาย ของตัวเลขโดยการเปลี่ยน (โดยปกติ) ตัวเลขหลักสุดท้าย...

พีแอล/ไอ

PL/I ใช้ PICTURE แอตทริบิวต์เพื่อประกาศข้อมูลทศนิยมแบบแบ่งโซนที่มีเครื่องหมายทับซ้อน แต่ละอักขระในภาพตัวเลข ยกเว้น V ซึ่งระบุตำแหน่งของจุดทศนิยมที่สมมติขึ้น จะแทนตัวเลขหนึ่งหลัก อักขระภาพ T , I , หรือ R ระบุตำแหน่งตัวเลขที่อาจมีเครื่องหมายทับซ้อน T...

โคบอล

COBOL ใช้ตัวอักขระรูปภาพ 'S' สำหรับ USAGE IS DISPLAY ข้อมูลที่ไม่มี SIGN IS SEPARATE CHARACTER การระบุการเจาะรูเกิน SIGN IS LEADING ระบุว่าการเจาะรูเกินอยู่เหนืออักขระตัวแรกของฟิลด์ ระบุ SIGN IS TRAILING ว่าอยู่เหนืออักขระตัวสุดท้าย SIGN IS TRAILING...

ซี/ซีดับเบิลยู

ภาษา C ไม่มีข้อกำหนดสำหรับเลขฐานสิบโซน คอมไพเลอร์ IBM ILE C/C++ สำหรับ System i มีฟังก์ชันสำหรับการแปลงระหว่าง เลขฐานสิบ หรือเลขฐานสิบโซน: [ 8 ] int double