สมบัติและการจัดการ ของ ศูนย์มีเครื่องหมาย

มาตรฐาน IEEE 754 เกี่ยวกับจำนวนจุดลอยตัวได้ระบุพฤติกรรมของบวกศูนย์และลบศูนย์ไว้ภายใต้การดำเนินการหลายอย่าง ผลลัพธ์ที่ได้อาจขึ้นอยู่กับการตั้งค่าภาวะการปัดเศษแบบ IEEE

เลขคณิต

การคูณและการหารปฏิบัติตามกฎการผสานเครื่องหมายอันเป็นปกติดังนี้

  • − 0 | x | = − 0 {\displaystyle {\frac {-0}{\left|x\right|}}=-0\,\!} (สำหรับค่า x ที่ไม่ใช่ศูนย์)
  • ( − 0 ) ⋅ ( − 0 ) = + 0 {\displaystyle (-0)\cdot (-0)=+0\,\!}
  • | x | ⋅ ( − 0 ) = − 0 {\displaystyle \left|x\right|\cdot (-0)=-0\,\!}

การบวกและการลบถูกจัดการโดยเฉพาะถ้าค่าต่าง ๆ อาจถูกตัดออกได้ ดังนี้

  • x + ( ± 0 ) = x {\displaystyle x+(\pm 0)=x\,\!}
  • ( − 0 ) + ( − 0 ) = ( − 0 ) − ( + 0 ) = − 0 {\displaystyle (-0)+(-0)=(-0)-(+0)=-0\,\!}
  • ( + 0 ) + ( + 0 ) = ( + 0 ) − ( − 0 ) = + 0 {\displaystyle (+0)+(+0)=(+0)-(-0)=+0\,\!}
  • x − x = x + ( − x ) = + 0 {\displaystyle x-x=x+(-x)=+0\,\!} (สำหรับจำนวนจำกัด x ใด ๆ; หรือเท่ากับ −0 กรณีปัดเศษเข้าสู่จำนวนลบ)

เนื่องจากมีค่าลบศูนย์อยู่ในระบบการแทนจำนวน ประโยค z = −(x − y) และ z = (−x) − (−y) จึงไม่สามารถลดทอนให้เป็น z = y − x ได้ เมื่อ x, y, z เป็นจำนวนจุดลอยตัว

กฎพิเศษอื่น ๆ มีดังนี้

  • − 0 = − 0 {\displaystyle {\sqrt {-0}}=-0\,\!} [3]
  • − 0 − ∞ = + 0 {\displaystyle {\frac {-0}{-\infty }}=+0\,\!} (ปฏิบัติตามกฎเครื่องหมายสำหรับการหาร)
  • | x | − 0 = − ∞ {\displaystyle {\frac {\left|x\right|}{-0}}=-\infty \,\!} (สำหรับค่า x ที่ไม่ใช่ศูนย์; ปฏิบัติตามกฎเครื่องหมายสำหรับการหาร)
  • ± 0 × ± ∞ = NaN {\displaystyle {\pm 0}\times {\pm \infty }={\mbox{NaN}}\,\!} (ไม่ใช่จำนวน หรือขัดจังหวะให้แก่รูปแบบยังไม่กำหนด)
  • ± 0 ± 0 = NaN {\displaystyle {\frac {\pm 0}{\pm 0}}={\mbox{NaN}}\,\!}

การหารค่าที่ไม่เป็นศูนย์ด้วยค่าศูนย์ ทำให้ตัวบ่งชี้ (flag) ของการหารด้วยศูนย์ถูกกำหนดเป็นหนึ่ง และการดำเนินการที่ให้ผลลัพธ์เป็นไม่ใช่จำนวน ก็ทำให้ตัวบ่งชี้ของการดำเนินการที่ใช้ไม่ได้ ถูกกำหนดเป็นหนึ่งเช่นกัน การจัดการความผิดปรกติจะถูกเรียกใช้ถ้ามีสำหรับตัวบ่งชี้ที่เกี่ยวข้อง

การเปรียบเทียบ

ลบศูนย์และบวกศูนย์เมื่อดำเนินการเปรียบเทียบแบบธรรมดาควรจะมีค่าเท่ากันตามมาตรฐาน IEEE 754 ตัวอย่างเช่นตัวดำเนินการ == ของภาษาซีและภาษาจาวา ในภาษาเช่นว่านั้น จำเป็นต้องเขียนโปรแกรมด้วยกลวิธีพิเศษเพื่อแยกแยะสองค่านี้ออกจากกัน ซึ่งมีหลายแนวทางอาทิ

  • การเล่นชนิดข้อมูล (type punning) โดยเปลี่ยนให้เป็นชนิดจำนวนเต็ม แล้วเปรียบเทียบรูปแบบบิต
  • การใช้ฟังก์ชัน copysign() ของ IEEE 754 เพื่อคัดลอกเครื่องหมายของศูนย์ไปยังจำนวนอื่นที่ไม่ใช่ศูนย์
  • การคำนวณส่วนกลับของศูนย์เพื่อให้ได้ 1/+0 = +∞ หรือ 1/−0 = −∞ อย่างใดอย่างหนึ่ง

การแปลงชนิดข้อมูล (type casting) เป็นชนิดจำนวนเต็มจะไม่ได้ผลเสมอไป โดยเฉพาะอย่างยิ่งบนระบบส่วนเติมเต็มสอง

ใกล้เคียง

ศูนย์ ศูนย์อำนวยการแก้ไขสถานการณ์ฉุกเฉิน ศูนย์การประชุมแห่งชาติสิริกิติ์ ศูนย์แพทยศาสตรศึกษาชั้นคลินิกในประเทศไทย ศูนย์การค้า ศูนย์วิทยาศาสตร์เพื่อการศึกษา ศูนย์แสดงสินค้าและการประชุม อิมแพ็ค เมืองทองธานี ศูนย์ปฏิบัติการต่อต้านการก่อการร้ายสากล ศูนย์อำนวยการบริหารจังหวัดชายแดนภาคใต้ ศูนย์การบินทหารบก

แหล่งที่มา

WikiPedia: ศูนย์มีเครื่องหมาย http://www.fourmilab.ch/documents/univac/minuszero... http://www.cygnus-software.com/papers/comparingflo... http://www2.hursley.ibm.com/decimal/dcspec.html http://www.javaworld.com/javaworld/jw-10-1996/jw-1... http://msdn.microsoft.com/library/en-us/csspec/htm... http://msdn.microsoft.com/library/en-us/csspec/htm... http://msdn.microsoft.com/library/en-us/script56/h... http://speleotrove.com/decimal/daops.html#refsqrt http://developers.sun.com/prodtech/cc/articles/sig... http://www.cs.berkeley.edu/~wkahan/Math185/Derivat...