บิตเครื่องหมาย (อังกฤษ: sign bit) ในทางวิทยาการคอมพิวเตอร์หมายถึง บิตหนึ่งบิตในการแทนจำนวนมีเครื่องหมายที่ใช้แสดง "เครื่องหมาย" (ความเป็นบวกหรือลบ) ของจำนวนหนึ่ง ๆ เฉพาะชนิดข้อมูลตัวเลขแบบมีเครื่องหมาย (signed) เท่านั้นที่จะมีบิตเครื่องหมาย และมักจะถูกวางไว้ทางซ้ายสุด ซึ่งถัดจากบิตเครื่องหมายก็จะเป็นบิตนัยสำคัญมากสุด (most significant bit) ของจำนวนแบบไม่มีเครื่องหมาย (unsigned) จำนวนจุดลอยตัวในรูปแบบไอทริปเพิลอีนั้นมีเครื่องหมายเสมอ และบิตเครื่องหมายก็อยู่ในตำแหน่งซ้ายสุดเช่นกัน โดยทั่วไปถ้าบิตเครื่องหมายเป็น 1 หมายความว่าจำนวนนั้นเป็นจำนวนลบ (สำหรับจำนวนเต็มแบบส่วนเติมเต็มสอง) หรือจำนวนไม่เป็นบวก (สำหรับจำนวนเต็มแบบส่วนเติมเต็มหนึ่ง จำนวนเต็มแบบเครื่องหมายกับขนาด และจำนวนจุดลอยตัว) ถ้าเป็น 0 หมายถึงจำนวนไม่เป็นลบ

ในการแทนจำนวนแบบส่วนเติมเต็มสองนั้น บิตเครื่องหมายมีค่าน้ำหนัก (ค่าประจำหลัก) เท่ากับ −2w−1 เมื่อ w คือจำนวนบิตทั้งหมด ในการแทนจำนวนแบบส่วนเติมเต็มหนึ่งนั้น ค่าลบที่น้อยที่สุดคือ 1 − 2w−1 แต่มีการแทนค่าศูนย์ถึงสองแบบคือ +0 กับ −0 และในการแทนจำนวนแบบเครื่องหมายกับขนาด (sign-and-magnitude) บิตเครื่องหมายมีหน้าที่เพียงบอกว่าจำนวนนั้นเป็นบวกหรือลบ [1]

เมื่อบวกจำนวน 8 บิตเข้ากับจำนวน 16 บิตโดยใช้เลขคณิตมีเครื่องหมาย หน่วยประมวลผลกลางจะถ่ายทอดบิตเครื่องหมายผ่านครึ่งอันดับสูงของเรจิสเตอร์ 16 บิตที่เก็บจำนวน 8 บิตอยู่นั้น กระบวนการดังกล่าวเรียกว่าการขยายเครื่องหมาย (sign extension) หรือการถ่ายทอดเครื่องหมาย (sign propagation) [2] กระบวนการขยายเครื่องหมายจะนำมาใช้ เมื่อใดก็ตามที่ชนิดข้อมูลมีเครื่องหมายที่เล็กกว่าจำเป็นต้องแปลงเป็นชนิดข้อมูลมีเครื่องหมายที่ใหญ่กว่า ในขณะที่ยังคงค่าตัวเลขเดิมเอาไว้ [1]

อ้างอิง แก้

  1. 1.0 1.1 Bryant, Randal; O'Hallaron, David (2003). "2". Computer Systems: a Programmer's Perspective (ภาษาอังกฤษ). Upper Saddle River, New Jersey: Prentice Hall. pp. 52–54. ISBN 0-13-034074-X.
  2. "สำเนาที่เก็บถาวร". คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2007-06-07. สืบค้นเมื่อ 2014-01-20.