3.05.2010

The PlayStation's Problem Triggered by Confusing Binary-Coded Decimal with Binary?

1 March 2010, a system failure occurred in PlayStation Network and PlayStation 3. The problem was solved now, but Sony Computer Entertainment (SCE) haven't announced about a cause of  the problem yet. A post which I wrote about this problem is below.
http://hikaruhorie.blogspot.com/2010/03/system-failure-of-playstation-network.html



Today, I found a post written about the problem by Yaju. (in Japanese)
http://blogs.wankuma.com/yaju/archive/2010/03/04.aspx

The author said that the problem might be due to confusing Binary-coded decimal (BCD) with binary. In BCD, every four digits are corresponding to each decimal digit. And many real time clock (RTC) count only last two digits of years in BCD. Then last two digits of 2010 is expressed 00010000. However, if a program took 00010000 as binary, it would be 16 and the program takes the year as 2016. Then it is a leap year. The author said that this PlayStation's problem might result of this RTC's bug.

I agree with his opinion and I want SCE to announce soon.


A correspondence table of decimal, BCD, binary and hexadecimal is below.

    decimal    BCD      binary    hexadecimal
       0    0000 0000  0000 0000     0x00
       1    0000 0001  0000 0001     0x01
       2    0000 0010  0000 0010     0x02
       3    0000 0011  0000 0011     0x03
       4    0000 0100  0000 0100     0x04
       5    0000 0101  0000 0101     0x05
       6    0000 0110  0000 0110     0x06
       7    0000 0111  0000 0111     0x07
       8    0000 1000  0000 1000     0x08
       9    0000 1001  0000 1001     0x09
      10    0001 0000  0000 1010     0x0A
      11    0001 0001  0000 1011     0x0B
      12    0001 0010  0000 1100     0x0C
      13    0001 0011  0000 1101     0x0D
      14    0001 0100  0000 1110     0x0E
      15    0001 0101  0000 1111     0x0F
      16    0001 0110  0001 0000     0x10

 Photo: http://www.vend123.com/

0 件のコメント:

コメントを投稿