ITエンジニア必見!『2038年問題』とは!

VB6,VBA,VBS,EXCEL,DOS,BAT,WSH,WORDの小技メモ

HTML/ CSS/ CGI-Perl/ JavaScript/ JavaApplet/ AccessUp/ Internet/ EnglishLearn/ ちゃいちゃん天使/ 天使メッセージ/ 飯田ワールド/ 結城ワールド/ プロフィール/ WEB相談室/ WEBアンテナ/ 燈明日記/ Perlノート/ 漢字起源/ yahoo

はじめに

本ページは、ウインドウズ系全般のティプスメモです。

そう、はじめはVB系のティプスメモだったのですが…いつの間にか、ウインドウズ系全般のティプスメモになってしまいました。

ちなみに、ティプス(Tips)とは、マニュアルに書かれていない技法や裏わざのことですが、本ページでは、私が経験してこれはと思ったノウハウのメモになっています。

尚、以下は本サイトの最新情報(ブログ)です。

それでは、本ページが何かのお役に立てれば幸いです。ごゆっくりご覧ください。

2010-04-18 ITエンジニア必見!『2038年問題』とは!

現在のパソコンやサーバーは、64ビットマシンも出てきましたが、まだまだ32ビットマシンが主流です。

32ビットで整数を表現すると、1ビット目は正負を表し、0が正の整数、1が負の整数となります。

なので、正の整数の最大値は31ビットで表され、2進数で0111 1111 1111 1111 1111 1111 1111 1111となり、10進数で2,147,483,647です。


一方、UNIX(liunx)系の32ビットマシンは、1970年1月1日0時0分0秒(UTC)からの経過秒数を使用しています。

この経過秒が、2038年1月19日3時14分7秒を過ぎると、なんと、2,147,483,647を超えてしまうのです。

すると、1ビット目が1になり、負の整数になってしまって、コンピュータが誤動作する可能性があるのです。


2038年には、すべて64ビットマシンになっていれば、問題がないかというと、実は、現在でもすでに影響が出ているのです。


あと28年、これは、2000年問題のレベルでなく、もっともっと深刻な状態になる可能性がありますね。

しかし、プログラマ特需の可能性も大なので、ものは考え様かも…。


とりあえず、28年後は、私は80才を軽く超えていますので、現役でいる可能性は限りなくゼロに近いです。

あ、そうそう、『2038年問題』の2年前にも『2036年問題』があります。


こちらは、NTPの時刻の表現に1900年1月1日 0時0分0秒 (UTC) からの積算秒数を使用しています。

この値は32ビット符号なしで表現されるため、すなわち42億9496万7295秒までしか表現できません。

これが、2036年2月6日 6時28分15秒(2月7日という説もある)にオーバーフローしてゼロになります。

NTPの時刻はWindows系で標準使用されているので、こちらも結構深刻ですね。

(WindowsではActive Directoryにおいて時刻同期が必須となったためNTP機能が標準で組み込まれている)


ということで、『2038年問題』と『2036年問題』は、若いITエンジニアの人には必見ですね!


追記(簡単にまとめると)

おわりに

以下のページには、すべてのTIPSがあります。もしよろしければ、どうぞ!

尚、ご感想、ご意見、誤字、脱字、間違い等がありましたら遠慮なくVB-TIPS掲示板へご指摘ください。

人のよいところをどんどん見つけよう