過去の問題じゃないの!?実は終わっていない2000年問題

雑学

2000年問題、別名Y2Kミレニアムバグという出来事を
一度はどこかで聞いたことがあると思います。

この出来事は映画や小説の話ではなく実際にあったものです。

2000年問題というからには2000年に起こった話なのでは?
と疑問に思う人もいるかもしれませんが
2000年問題自体は終わっても、根本的にはまだ終わっていないのです。

プログラミングを知っている人ならわかると思いますが、
この手の話は正直なところ、終わるということがありません。

何故かというと、数学的には無限にある数字ですが
コンピュータが扱える数には上限があるからです。

 

 

2000年問題とは

Sponsered Link

では本題に入っていきます。

2000年問題の原因は西暦四桁のうちの下2桁で
プログラムを処理をしていたことです。

値が1999から次の値に変わるとき
下2桁だけを処理しかしないので
1900となってしまうのを懸念されていました。

何故下2桁の値だけしか処理されていなかったかというと
当時のコンピュータは今よりも性能が低く
メモリを節約するためになるべく演算が少ないように工夫していました。

それが2000年問題へと繋がったのです。

当時2000年問題に備えて
2000年の年明け前に多くのエンジニアが
各会社のオフィスで待機していましたが
幸いなことに以前からの備えのおかげで
ほぼ何も大きな問題は起こらずにすみました。

 

 

2025年、2038年問題?

2000年問題と似たようなもので
2025年問題2038年問題が存在します。

2025年問題は昭和100年問題ともいわれ
年を表記する際に西暦ではなく昭和を使っているコンピュータが
昭和100年を迎える際に
昭和0年と誤作動を起こしてしまうかが懸念されている問題です。

この問題の原因は年を表すのに二桁の数字を使っているのが原因です。

また、2038年問題というのは
2038年1月19日3時14分7秒をすぎると
コンピュータが誤作動を起こしてしまうかもしれない問題です。

この問題の原因は、
日付を1970年1月1日0時0分0秒から時間を数えているUNIX時間の値が
オーバーフローしてマイナスとして扱われてしまうのが原因です。

何故なら
コンピュータの世界ではintという型を使っていて
その型が保持できる値が2147483647秒であるのが理由です。

ですがこれよりも値を保持できるlong型などを使えば
この問題は解決できる見通しです。

 

 

まとめ

何気なく使っているコンピュータですが、
実は裏でたくさんのエンジニアがバグが起きないように日々励んでいます。

もしも、将来エンジニアになる人は
こういった問題に備えるようにしておきましょう。

コメント

タイトルとURLをコピーしました