15 มิ.ย. 2020 เวลา 03:06 • วิทยาศาสตร์ & เทคโนโลยี
วันที่และเวลา คอมนับยังไง? ทำไมไอโฟนพังเมื่อตั้งวันที่ 1/1/1970
วันที่และเวลา คอมนับยังไง? ทำไมไอโฟนพังเมื่อตั้งวันที่ 1/1/1970
ทุกคนเคยสงสัยไหมว่า วันเวลาที่คอมแสดงผลให้เรา ถูกนับยังไง วันนี้เรา
ยกตัวอย่างมา 1 วิธี ที่เรียกว่า UNIX Epoch ซึ่งไม่ได้บันทึกข้อมูลในแบบที่
เราเห็น เพราะมันยากต่อการจัดเก็บ แต่มันถูกบันทึกในลักษณะนี้
ตัวอย่างการจัดเก็บเวลาแบบ Epoch
จะสังเกตว่า UNIX Epoch จะนับเป็นตัวเลขชุดเดียวโดยเพิ่มขึ้น 1 ทุกๆ 1
วินาที ดังนั้น เรามาลองย้อนกลับไปที่จุดเริ่มต้น
ตัวอย่างการจัดเก็บเวลาแบบ Epoch
ดังนั้น UNIX Epoch ถูกเริ่มนับ เมื่อวันที่ 1 มกราคม 1970 ดังนั้น ในปัจจุบัน จึงเป็น 1,592,212,958 วินาทีผ่านมาแล้ว
เมื่อเราเข้าใจตรงนี้แล้ว เรามาพูดถึงการจัดเก็บข้อมูลดีกว่าครับ ในปัจจุบัน
คอมเราก็สามารถเก็บข้อมูลแบบ 64bit ได้แล้วครับ ซึ่งมันอาจดูเยอะเกินไป เรามาทำความเข้าใจกับ 4bit ดีกว่าครับ จะได้เข้าใจง่าย
4bit จะสามารถเก็บข้อมูลได้ตั้งแต่ 0-15 ครับ แต่เมื่อเรานำ 15+1 จะได้ผลออกมาเป็น 0 และแน่นอนครับ 15+2 ก็จะได้ 1 เพราะเมื่อเกิดเหตุการณ์นี้ที่
เรียกว่า Overflow มันจะกลับมาที่จุดเริ่มต้น ส่วนในทางกลับกัน มันไม่
สามารถเก็บจำนวนติดลบได้ เมื่อนำ 0-1 ก็จะได้ 15 ครับ เรียกเหตุการณ์นี้ว่า Underflow ซึ่งนี่ก็เป็นเหตุผลนะครับว่าทำไมเกมเก่าๆ เราเดินเข้าทางซ้าย
สุดแต่ออกมาทางขวาสุด
Overflow
Underflow
ใน bit อื่นๆ ก็เช่นกันครับ เมื่อจำนวนที่มากที่สุดที่เก็บได้ +1 = 0 และเมื่อ
0-1 = จำนวนที่มากที่สุด
ตอนนี้เราก็เข้าใจแล้วครับ ว่าคอมนับเวลายังไง ตอนนี้เรามาดูกันดีกว่าว่าทำไมตั้งไอโฟนเป็นวันที่ 1 มกราคม 1970 แล้วมันพัง
iPhone ที่เปิดไม่ได้
ข่าวนี้ก็เป็นข่าวที่เก่าแล้วแหละครับ แต่ผมขอมาอธิบายละกัน เมื่อเราตั้ง
ไอโฟนเป็นวันที่ดังกล่าว ทำให้ UNIX Epoch = 0 ก็ดูไม่มีปัญหาอะไรนะ
ครับ แต่ไอโฟนจะมีการคำนวณต่างๆ เช่นการใช้แบตเตอรี่ หรือการโทรครั้ง
ล่าสุด สมมุติว่ามีการโทรล่าสุดเมื่อ 3 ชม. ที่แล้ว ซึ่ง 3 ช.ม. ก็เท่ากับ 10800 วินาที ไอโฟนจึงนำ 0 ไปลบ 10800 เพื่อดูว่าเราโทรครั้งล่าสุดกี่โมง จึงได้
ผลลัพธ์ออกมาเป็นดังนี้
ตัวอย่างการจัดเก็บเวลาแบบ Epoch
เป็น ค.ศ. ที่แสนล้านเลยครับ ซึ่งวันที่ดังกล่าว ก็เป็นวันที่สูงสุด ที่ 64bit
สามารถจัดเก็บได้ครับ จึงเกิด Error และเปิดไม่ได้เลยครับ
ตอนนี้ก็เข้าใจแล้วใช่ไหมครับ ว่าคอม UNIX นับเวลายังไง และทำไมไอโฟนถึงพังด้วยวันที่ 1/1/1970
ขอบคุณที่เข้ามาอ่านครับ
บทความนี้ถูกแปลมาจาก Tom Scott

ดูเพิ่มเติมในซีรีส์

โฆษณา