Numeric literals in other than base 10 - was Annoying octal notation
Mensanator
mensanator at aol.com
Tue Aug 25 14:45:28 EDT 2009
On Aug 25, 9:14 am, Steven D'Aprano <st... at REMOVE-THIS-
cybersource.com.au> wrote:
> On Mon, 24 Aug 2009 18:01:38 -0700, Mensanator wrote:
> >> If you want your data file to have values entered in hex, or oct, or
> >> even unary (1=one, 11=two, 111=three, 1111=four...) you can.
>
> > Unary? I think you'll find that Standard Positional Number Systems are
> > not defined for radix 1.
>
> Of course not. But unary isn't a positional number system. It's a tally
> system, like my example above shows. Roman numerals are another tally
> system. Like Roman numerals, the disadvantages of unary are that you
> can't represent negative numbers, zero, or fractions, and anything but
> addition and subtraction is difficult. But if you want to use it, perhaps
> out of a sense of sadism towards your users, it's easy:
>
> def int2unary(n):
> return '1'*n
>
> def unary2int(s):
> n = 0
> for c in s:
> if c == '1': n+=1
> else: raise ValueError('invalid unary string')
> return n
But without insignificant leading 0's, I fail to see the relevance
of unary to this discussion. And what would you call a tally system
of radix 2? Certainly not binary.
>
> --
> Steven
More information about the Python-list
mailing list