Need a book? Engineering books recommendations...

Return to index: [Subject] [Thread] [Date] [Author]

RE: Year 2000 computer problem

[Subject Prev][Subject Next][Thread Prev][Thread Next]
Very impressive description of the problem, Roger.  I've never thought
about it that way (or seen it described as such in the popular press OR
trade magazines).

Dan

-----Original Message-----
From: Roger Turk [mailto:73527.1356(--nospam--at)compuserve.com]
Sent: Thursday, November 12, 1998 1:29 PM
To: seaint(--nospam--at)seaint.org
Subject: Year 2000 computer problem


R. D. McConnell wrote:

. > It is only necessary to change the 2-digit integer representation of
the 
. > date to a 4-digit integer to account for the "2000" problem.

I agree with your basic premise that the Y2K problem is a contrived
problem, 
however for a different reason.  I, too, was introduced to computers in
the 
1950's when the IBM 650 was the greatest and latest.

First, numbers are not stored in computers as "digits," but as
electrical 
(magnetic) charges.  Either it is on or it is off.  The largest integer
that 
can be represented is determined by the number of bits available.  As I 
recall, the IBM 650 used 12 bit "words" and allowing 1 bit for the sign,
the 
maximum integer that can be represented with 11 bits would be 2047.  
Similarly, for 4 bits, the maximum integer would be 15; for 7 bits (8
bits 
minus 1 for a sign), the maximum integer would be 127; and for 16 bits,
the 
maximum integer is the recognizable 65,535.

Since the earliest computers (even with the IBM 1401 and IBM 7072, which
by 
then were using 24 bit "words") did not store dates (the computers had
to be 
initialized with a card deck and the dates entered manually each time
the 
computer was started), and that complete "words" had to be used, a
"date" 
problem would not occur until at least 2047.  (Hm-m-m, Mac users, does
this 
number sound familiar?)

Now, when the BIOS for the PC came into being and stored a date, be it a

2-digit date (80 as 1010000 or 84 as 1010100) [7 bits], or a 4-digit
date 
(1980 as 11110111100 or 1984 as 11111000000) [11 bits], there should not
be a 
problem until the year 2007 (for 7 bit numbers) or year 2047 for 11 bit 
numbers.  For 16 bits, the problem would not occur until 65535.  (I have
a 
Phoenix BIOS on my old, ca. 1986, Leading Edge Model D [8088 machine]
and it 
shows the date as 4-digits.  I have checked the BIOS out for the year
2000 by 
setting the date to December 31, 1999, the time to 11:55 p.m., and
waiting 
for more than 5 minutes, both with the computer on and off, and it
recorded 
the correct 2000 date.  Now I have to check it out to see if there is a 
February 29th in the year 2000.)

Now, when it comes to *programs* using dates, there could be a problem,
but 
not necessarily at the year 2000.  Some programs start with an arbitrary
date 
and do date and time arithmetic using the number of days, minutes and
seconds 
from that arbitrary date; others use Julian Dates, which means different

things to different people.  (Some Julian calendars count days from year
1, 
others from the first day of the current year.)

A. Roger Turk, P.E.(Structural)
Tucson, Arizona