Check this:
(%i1) ibase:16$
(%i2) ibase:2$
(%i3) ibase:10$
(%i4) ibase:2$
Attempt to set ibase to 2
Improper value assignment
-- an error. To debug this try debugmode(true);
(%i5) ibase:1010$
(%i6) 10-1;
(%o6) 9
(%i7)
After (%i2) the base was 2, so in (%i3) "10" was read in base 2 and so
equals 2. But "2" is not a legal number in base 2 so (%i4) fails.
(%i5) uses the base 2 representation of the base 10 number "10", and the
base was changed correctly as shown by (%i6) and (%o6)
--
Bill Wood