엘쥐폰 에러

mycluster의 이미지

엘쥐폰에 2010년 1월 1일부터 2016년으로 날짜가 나오는 에러가 이슈가 되고 있는데...
아마 프로그래머가 10진법으로 해야할 코딩을 16진법으로 코딩했으니까, 09년 다음에 0a년으로 가서 2016년으로 나왔겠지요?

planetarium의 이미지

글쎄요 그런 얘기가 나온 이후로 많은 사람들이 믿는 분위기인데, 전 잘 모르겠습니다.
그 말대로라면
연도를 계산하는 부분에서는 09년 말일에 1을 더했을때 10년(2진 1010)이 된 후에,
이 10년을 16진수(2진 10000) 로 보고, 다시 2진 10000 값을 10진수 16년으로 출력했다는 건데, 어쩌다 이렇게 되는지...
기계 안에서 BCD 코드라도 쓰려고 했던걸까요?

이응준의 이미지

문자열<->숫자 변환하다가 그런건 아닐까요?

이런식으로...

""" 년도를 두자리수로 입력받아서 (08, 09, 10 이런식으로) 뭔가 처리해주는 함수 """
def foo(year):
  // 년도를 문자열로 바꿀 필요가 생김
  year_str = str(year)
 
  ... 뭔가 함 ...
 
  // 애초에 year가 정수라서 그냥 쓰면 되는데 까먹음. 혹은 무슨 사정이 있음.
  // base에 10이 들어있을거라고 믿음. 하지만...
  year_int = int(year_str, base)
 
  // 09라고 입력받았지만 2009라고 돌려주고 싶어짐.
  return '20%02d' % year_int 
sephiron의 이미지

2000년을 zero base로 잡고 끝에 두자리만 처리했나본데요?

7339989b62a014c4ce6e31b3540bc7b5f06455024f22753f6235c935e8e5의 이미지

http://bricks.egloos.com/5213572

이 설명이 맞는 것 같던데요.

---8< 서명 -----------------
애니메이션 감상 기록 http://animeta.net/

teguru75의 이미지

2010년의 경우 망에서는 뒤의 두 자리 값인 0x16(BCD)를 내려주는데
0x16을 BCD->digit 변환(= 10)하지 않고 단순히 16진수로 처리(=16)해서 발생했다고 하네요.

allmue의 이미지

요즘꺼만 버그 있는건 아닌 것 같더라구요...... 제껀 1년전 핸드폰인데..... 이 버그 나옵니다.....

귀차니즘으로 아직 업데이트는 하지 않았지만....ㅎ;;
오래된 핸폰도 확인들 해보시길.....^^;

=====
항상 겸손하게, 배움의 자세로 임하자.
=====

_______
항상 겸손하게,
배움의 자세로 임하자.

freestyle의 이미지

옆쪽 조그만 커넥터를 부러뜨려서 업데이트를 못 해요.
(뷰티폰이 원래 잘 고장나지요 -0-)

서비스 센터 가서 업데이트 하려면 커넥터 고쳐야 한다고,
수리비 내라고 할 것 같아요. 그냥 써야지요 뭐;
----------------------
Go to the U-City

----------------------------------------------------------------------------------------
Don't Feed the Trolls!
----------------------------------------------------------------------------------------