บิตเครื่องหมาย

บิตเครื่องหมาย (อังกฤษ: 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]