[Tutor] Re: number conversion problem (was: Re: [no subject])
Dragonfirebane at aol.com
Dragonfirebane at aol.com
Tue Jun 8 21:22:48 EDT 2004
In a message dated 6/8/2004 8:43:23 PM Eastern Daylight Time, glingl at aon.at writes:
> Dragonfirebane at aol.com schrieb:
>
> >basically, i'm writing a program to convert text into binary into hexadecimal in all the possible combinations of those (text - bin, text - hex, bin - text, bin - hex, hex - bin, hex - text). while more mathematical possibilities no doubt exist, i'm not up to delving into 'math' right at this moment. also, i wanted to make it work without importing too many things.
> >
> >
> >
> Hi Dragonfirebane!
> I see a problem in your problem statement:
> You want to make the following conversions:
>
> text - bin, text - hex, bin - text, bin - hex, hex - bin, hex - text
>
> Incidentally, if you output a number you always oputput
> a string-representation of a number, and you want to get
> representations of the same number with different bases (2, 16,
> *and* 10 --- what you called 'text'). In fact all those are texts. But
> there is a number (behind the scenes), which is - I suppose -
> stored as a binary number in the computer-memory.
>
> The default way to output this number Python uses is in decimal format.
> If you want to make conversions of the sort bin - hex you have
> to convert a binary representation of some number into the number
> (the value) and then this value again into a string representation
> with some other base.
>
> In fact Python has a built in function, which converts the
> string-representation of a number with an arbitrary base < 36
> into a number:
>
> >>> int("ff",16)
> 255
> >>> int("1111",2)
> 15
> >>> int("1001",10)
> 1001 ;-)
>
> The interactive Python interpreter doesn't use quotes '...' when
> printing (the decimal representations of) numbers in order
> to show that these are stored internally as number objects,
> and knowing that we cannot think of numbers without using a
> representation ... (confusing?). And moreover knowing, that
> the decimal representation is the only one we are
> accustomed to ...
>
> Unfortunately Python - as far as I know - does not have
> the reverse function, e.g. numstr, which would work like:
>
> >>> num2str(255,16)
> 'ff'
> >>> num2str(15,2)
> '1111'
>
> etc.
>
> With such a function we easily could get something like
>
> def convert(number_representation, from_base, to_base):
> number = int(number_representation, from_base)
> return num2str(number, to_base)
>
>
> I fear, that this 'explanation' raises more questions than
> it solves- so I'll stop here. Feel free to ask more
> questions on this, if you like. Certainly there are
> people listening and writing to this list, who will
> help to clarify those things much better than I can ....
>
> Gregor
I appreciate the explanation and subsequent Python examples, and I may very well end up using them, but i prefer to code using as little pre-existing modules as possible, at least while i'm still learning the language.
"n thats the way the cookie crumbles"
America's Favorite Cookie
More information about the Tutor
mailing list