- 일반(쌀집) 계산기
피연산자의 충돌시 처리 (예: sign changer)
7+(-5) = ?
위 식을 일반 계산기로 계산할 때는
【7】【+】【5】【+/-】【=】 순서로 누르는 것이 맞습니다.
그리고 그 결과는 2가 나오죠.
질문)
그런데 계산기 입력에 익숙하지 못해
【7】【+】【+/-】【5】【=】 순서로 잘 못 눌렀다면
그 결과로 몇이 나올까요?
답)
(아직까지 확인된 바로는) 2 가지 경우가 있습니다.
- 1) 카시오 K타입의 경우 = 12
- 2) 그 외 계산기인 경우 = -2
이런 차이가 발생한 것은
operator 에게 필요한 oprerand가 바로 나오지 않고
다른 operator가 등장했기 때문인데요.
이러한 예외상황을 계산기가 어떻게 처리할 것인가에 대한 문제입니다.
위의 예에서는
【+】【+/-】 로 sign changer 앞에 피연산자(숫자)가 아닌 연산자 + 가 있습니다.
결과로 '-2' 가 나온 계산기는 + 연산자를 무시하고 그 앞의 숫자(7)까지 찾아가서
sign changer 기능을 적용을 한 것이구요.
결과로 '12'가 나온 계산기는 + 연산자를 무시하지 못하고,
연산자 사이에 빈 데이터가 있다고 가정하고 적용(=결과적으로 취소)
되었다고 보시면 될 것 같습니다.
* 제 추측에 의한 설명이니, 보다 정확히 알고 계신다면 댓글 남겨주시면 감사하겠습니다.
그것도 정상입니다.