Computers don't do "decimal math"?

greenspun.com : LUSENET : TimeBomb 2000 (Y2000) : One Thread

The following appeared today in WorldNetDaily's "E-mail to the Editor" section: The Y2K hoax
"Please, Please, Please, calm down. You are helping perpetuate the hoax which will generate the panic they want as an excuse. COMPUTERS DO NOT DO DECIMAL MATH! Neither the decimal number 100 nor 2,000 have any special significance to the internal binary arithmetic of a computer. Don't think of a computer in the same way you think of the odometer on your car. Its not the same thing. A few decimal output formats may be screwed up. If your electric bill for January 2000 is dated 19??, just pay it. The computer is just fine. It knows what date it is and how much you owe. As soon as somebody notices, a few keystrokes will change the format for the bill so it will look right. NO BIG DEAL! This is just a welfare program for highly paid consultants and an excuse for power mad politicians and you're helping them."

Would anyone care to comment about this? Seems to me that the computers' machine language is still translated back into a date with implications that we have to deal with.

-- Max Dixon (Max.Dixon@gte.net), July 31, 1998

Answers



-- ahem... (goof@HTML.com), July 31, 1998.

I don't normally like to get into the kind of name-calling that frequently infests this forum, but the person who wrote the E-mail to the Editor you quote is pretty damn ignorant. I think "fatuous idiot" would be a reasonable description.

It doesn't matter if computers do math in decimal, binary, hexadecimal or the base-60 numbering system used by the Aztecs. People tend to use decimal representations and if the computer uses some other base it simply means that the decimal representation has been converted. NO MATTER WHAT THE BASE IS, THE RESULTS ARE THE SAME! Anyone else remember "New Math" from the 60's?

Here's an example:

Let's say you have a program which attempts to figure out how old someone is by subtracting their year of birth from the current year. Imagine someone was born in 1961 and that this number is represented in the database of the application as "61". That would be "3D" in hexadecimal. If the current year is "00" (also "00" in hex), the result of the subtraction in hex is "-3D". What's that equal when you convert back to decimal? "-61"! The exact same result you would get if you never did the conversion in the first place.

The same thing occurs with binary and every other numeric base you could possibly use. Basic math operations are not affected by the base that is used.

Even if the results were different, a negative age was probably not anticipated by the programmer, so the behavior of the application would be unpredictable. It might abend, it might attempt to coerce -61 into a positive number (explaining what that means is beyond the scope of this reply), it might decide the age is actually +61, or it might even cause the computer to halt (very unlkely, but possible on some systems). If it does any of these, you've got a Y2k problem.

-- Ed Perrault (EdPerrault@Compuserve.com), July 31, 1998.


Right...

The "Please, Please, Please..." argument only applies to systems such as relational database systems (Oracle, Informix, SQL Server, etc.) where dates are stored in a Y2K compliant format (have been for years!), and only input & output of the database are an issue. Sadly, such systems (even there you must fix the input/output) are in the minority. Most systems are a hodge-podge of in-house code and off-the-shelf applications which DO break. Such system produce useless results after 1/1/2000, or just crash.

The "Please, Please, Please..." argument might seem more applicable to embedded controllers which often only measure elapsed time. Unfortunately, most such controllers are actually based on controllers that DO store an internal date. Just to make it interesting, the date stored in internal controllers which only measure elapsed time is not necessarily set to the correct date. They will die (someday), but nobody knows when.

-- Anonymous (Anonymous@anonymous.com), July 31, 1998.


Sorry, left my italics tag open...

-- Max Dixon (Max.Dixon@gte.net), July 31, 1998.

It's mind-boggling that anyone could be that ignorant and that arrogant at the same time.

-- Deborah Barr (debbarr@concentric.net), July 31, 1998.


Ok you all, you've got me interested enough to comment. as a new comer to this issue I only seek knowledge of an issue about which I am concerned and ignorant. I'm a home builder and also a husband and father. I also have a fairly sizable net worth which I manage carefully, not for me, but for my decendants,so I have a vested interest in this issue and need real information to properly react. Having layed out this background I have to say I'm skeptical of this forum. Two of the four responses I read here only insult the "please, please, please" writer rather than rebutt his view. The other responses are informative but a 50/50 ratio of open minded people isn't too good. I'll stick with it though because I've got so much to learn and so little time. What I want to do soon is to ask some of my clients, (folks who've bought my houses), who are in the computer industry what they think.

-- Tony Wood (T3Wood@aol.com), July 31, 1998.

Tony, you have to do your own research and draw your own conclusions. What you do with your money is up to you. No one can tell you what to do. I have read enough over the past year and the governor of our state said yesterday that we are in deep shit. He said it is optimistic to think we will get even half of our computers fixed in this state. We are preparing "just in case." Better to lose a few months interest than risk losing our entire nestegg. We can always eat the food that we stashed or give it to a food pantry. Do your own thing. Don't rely on this forum for any answers. You are the one who ulimately decides what is best for you. Good luck!

-- Dave (dave22@concentric.net), July 31, 1998.

Tony,

Actually, I counted only 3 responses.....one was apologizing for leaving italics on.......and 2 of the 3 were valid criticisms, not just flaming.

That said, many of the people who post here have researched y2k for a long time. They are convinced that there will be a major problem. They also have seen countless people come into this forum and demand -- yes, demand -- that someone 'prove' to them that there will be a problem. Of course, such a demand is more than a little bit arrogant, since the issue can not be proven, one way or the other.

We can only gather as much information as possible, determine our own course of action, and act in our own preservation. Some will choose to prepare by gathering food, emergency communications, and emergency power. Others will actually move, because they feel that they are vulnerable where they are located. Some will talk a lot, but won't do anything. And, finally, some simply do not believe that Y2K will be a problem. Some of these have an idea that "they'll fix it," and others simply discount the magnitude of the problem.

Now, go back to that article. The writer of the letter to the editor has based the letter on a major technical error, as pointed out in the first response. Making an error isn't bad, God onlknows that we all do it. Acting to write such a letter, in an arrogant tone, based on such an error is-----and here I'm being charitable ----- dumb.

He or she also has failed to consider, for example, that the federal government, large banks, Fortune 2000 companies, utilities, etc., etc., etc., are spending billions of dollars to fix a problem that the author labels a "hoax." By the way, this is also a common first thought......"it's a hoax".....without considering the position and the intelligence of the people who are being asked to cough up to fix the 'hoax.' In other words, the letter is arrogant, and totally wrong.

Now, why should people waste time being nice to the unknown writer of that letter? No one was flaming Max Dixon......the response was to the unknown, clueless, letter writer.

If you're relatively new to the problem, please research it. You're going to have to fall into one of the categories I've listed above. Since that must happen, you might as well make your choice based on the best available information.

-- Rocky Knolls (rknolls@hotmail.com), August 01, 1998.


Max,

Apparently the author of "Please, Please, Please" never programmed an IBM 1620!! (That was the first model I ever used, about 1963.)

In the 1620, each addressable storage location with numeric data contained a decimal digit (0-9). Yes, four of the bits at each address were used to hold the value of the number, but all machine arithmetic instructions worked with only the values 0-9 there, and produced only the values 0-9 at each location. Other bit patterns were not valid as numeric digits, though were part of the representation of other characters.

I think the same-era IBM business-oriented model (1410? 1420?) for which Autocoder was the principal language had a similar arithmetic arrangement.

This seems irrelevant to Y2K, _but_ IIRC there are chips that store the character value of the year number in some fixed pair of bytes, and use a binary-to-character conversion method that will cause a character to spill into an adjacent byte when the year number rolls from 99 to 100. (Similar to the tm_year problem.) If that adjacent byte, either before or after the pair designated to hold the year number, is supposed to hold a value other than the "1" or "0" spilling into it, errors can result that may not seem date-related at first.

-- Richard B. Woods (ribwoods@execpc.com), August 04, 1998.


Moderation questions? read the FAQ