09-06-2019, 07:04 AM
Just fiddling with my beautifully restored HP65 and found something odd. I don't think it affects any other calculators, but it might. The HP16C just simply prevents the digits 8 and 9 from being entered in octal mode so the problem never arises. The HP41CV DEC function throws a "DATA ERROR" if a non-octal digit is present in the input parameter.
But on the HP65 ...
Type 8 f-1 ->OCT and nothing happens as you'd expect since 8 is not a legal digit in octal. Same happens for 9. ( Actually, this makes perfect sense in light of the following. )
However, typing 80 f-1 ->OCT it displays 64! Convert that back to octal by typing f ->OCT and you get 100. Weird. Looks like 8 is handled like a decimal 8 for the purpose of converting from octal to decimal, so it treats it like 8 times 8^1.
Same for 800, f-1 ->OCT displays 512, which converted back to octal displays 1000. Equals 8 times 8^2.
Similarly, for 90, f-1 ->OCT displays 72, which converted back to octal displays 110. Equals 9 times 8^1. Etc ...
Dunno if I'd go as far as to call it a bug, just an interesting way to deal with non-octal digits when converting from octal to decimal. It was probably a choice of doing it this way or displaying a flashing error condition. And nobody likes an error.
But on the HP65 ...
Type 8 f-1 ->OCT and nothing happens as you'd expect since 8 is not a legal digit in octal. Same happens for 9. ( Actually, this makes perfect sense in light of the following. )
However, typing 80 f-1 ->OCT it displays 64! Convert that back to octal by typing f ->OCT and you get 100. Weird. Looks like 8 is handled like a decimal 8 for the purpose of converting from octal to decimal, so it treats it like 8 times 8^1.
Same for 800, f-1 ->OCT displays 512, which converted back to octal displays 1000. Equals 8 times 8^2.
Similarly, for 90, f-1 ->OCT displays 72, which converted back to octal displays 110. Equals 9 times 8^1. Etc ...
Dunno if I'd go as far as to call it a bug, just an interesting way to deal with non-octal digits when converting from octal to decimal. It was probably a choice of doing it this way or displaying a flashing error condition. And nobody likes an error.