ผลต่างระหว่างรุ่นของ "ศูนย์มีเครื่องหมาย"

เนื้อหาที่ลบ เนื้อหาที่เพิ่ม
Octahedron80 (คุย | ส่วนร่วม)
ไม่มีความย่อการแก้ไข
Octahedron80 (คุย | ส่วนร่วม)
บรรทัด 8:
 
== การแทนในคอมพิวเตอร์ ==
การเข้ารหัส[[ส่วนเติมเต็มสอง]] (two's complement) ที่ใช้กันอย่างกว้างขวางไม่อนุญาตให้มีค่าลบศูนย์ การแทนจำนวนมีเครื่องหมายชนิด 1+7 บิตสำหรับจำนวนเต็ม ลบศูนย์แทนด้วยค่า <tt>1000 0000</tt> และการแทน[[ส่วนเติมเต็มหนึ่ง]] (one's complement) ชนิด 8 บิต ลบศูนย์แทนด้วยค่า <tt>1111 1111</tt> การเข้ารหัสทั้งสามชนิดนั้น บวกศูนย์แทนด้วยค่า <tt>0000 0000</tt>
[[ไฟล์:IEEE 754 Single Negative Zero.svg|thumb|right|400px|ลบศูนย์ในระบบการแทนจำนวนมีจุดทศนิยม IEEE 754 แบบ 32 บิต]]
ในระบบการแทนจำนวนแบบ 8 [[บิต]]ของจำนวนเต็มในคอมพิวเตอร์ โดยมีบิตที่ 7 (หรือบิตซ้ายสุด) เรียกว่า MSB (Most Significant Bit) เป็นบิตกำกับเครื่องหมาย ส่วนที่เหลือคือบิตที่ 0-6 (บิตขวาสุดคือบิตที่ 0) เป็นตัวบอกค่า จำนวนลบศูนย์สามารถแทนด้วย[[เลขฐานสอง]] <code>10000000</code> และ[[ส่วนเติมเต็มหนึ่ง]] (ones' complement) ของจำนวนลบศูนย์คือ <code>11111111</code> ส่วนในระบบการแทนจำนวนมีจุดทศนิยมตามมาตรฐาน [[IEEE 754]] จำนวนลบศูนย์เขียนแทนด้วย เลขชี้กำลังและ[[แมนทิสซา]]ที่เท่ากับศูนย์ทั้งคู่ และบิตกำกับเครื่องหมายเป็นหนึ่ง (หมายถึงค่าลบ)
 
[[ไฟล์:IEEE 754 Single Negative Zero.svg|thumb|right|400px|ลบศูนย์ในระบบการแทนจำนวนมีจุดทศนิยมลอยตัว IEEE 754 แบบ 32 บิต]]
ข้อกำหนดการเข้ารหัสเลขคณิตฐานสิบทั่วไป (General Decimal Arithmetic) ของ[[ไอบีเอ็ม]] กำหนดให้จำนวนลบศูนย์สามารถแทนได้ด้วย เลขชี้กำลังที่เป็นค่าใดๆ ก็ได้ในช่วงที่อนุญาต (ต่างกับ IEEE 754 ที่ต้องเป็นศูนย์) สัมประสิทธิ์ (แมนทิสซา) จะต้องเป็นศูนย์ทั้งหมด และบิตกำกับเครื่องหมายจะต้องเป็นหนึ่ง
ในจำนวนจุดลอยตัวฐานสองของ IEEE 754 ค่าศูนย์ทั้งสองแทนโดยกำหนดให้บิตเลขชี้กำลังและเลขนัยสำคัญเป็นศูนย์ทั้งหมด สำหรับลบศูนย์ก็กำหนดให้บิตเครื่องหมายเป็นหนึ่ง เราอาจได้ลบศูนย์เป็นผลลัพธ์จากการคำนวณเฉพาะอย่าง ตัวอย่างเช่นผลจาก[[ภาวะน้อยเกินเก็บเชิงเลขคณิต]] (arithmetic underflow) ของจำนวนลบ หรือ <tt>−1.0*0.0</tt> หรือเพียงแค่ <tt>−0.0</tt>
 
ในระบบการแทนจำนวนแบบ 8 [[บิต]]ของจำนวนเต็มในคอมพิวเตอร์ โดยมีบิตที่ 7 (หรือบิตซ้ายสุด) เรียกว่า MSB (Most Significant Bit) เป็นบิตกำกับเครื่องหมาย ส่วนที่เหลือคือบิตที่ 0-6 (บิตขวาสุดคือบิตที่ 0) เป็นตัวบอกค่า จำนวนลบศูนย์สามารถแทนด้วย[[เลขฐานสอง]] <code>10000000</code> และ[[ส่วนเติมเต็มหนึ่ง]] (ones' complement) ของจำนวนลบศูนย์คือ <code>11111111</code> ส่วนในระบบการแทนจำนวนมีจุดทศนิยมตามมาตรฐาน [[IEEE 754]] จำนวนลบศูนย์เขียนแทนด้วย เลขชี้กำลังและ[[แมนทิสซา]]ที่เท่ากับศูนย์ทั้งคู่ และบิตกำกับเครื่องหมายเป็นหนึ่ง (หมายถึงค่าลบ)
จำนวนลบศูนย์ไม่สามารถแยกแยะออกจากจำนวนบวกศูนย์ด้วยการดำเนินการ[[ส่วนเติมเต็มสอง]] (two's complement) ซึ่งเป็นการกลับเครื่องหมายของจำนวนมีเครื่องหมายทั่วไป หรือกล่าวอีกนัยหนึ่งคือ ลบศูนย์ไม่มีส่วนเติมเต็มสอง
 
== คุณสมบัติและการจัดการ ==