RE: Simple Problem ??
- To: mathgroup at smc.vnet.net
- Subject: [mg39261] RE: [mg39226] Simple Problem ??
- From: "Wolf, Hartmut" <Hartmut.Wolf at t-systems.com>
- Date: Thu, 6 Feb 2003 03:08:17 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
Werner,
you've got replies that do what you want. The problem however is not to mix
up numbers with strings (denoting numbers). Let me introduce what, I think,
are Mathematica's notions:
A number is a number, i.e. a mathematical object, it has no base, and such
cannot be converted to a different base.
As...
In[46]:= Nest[Prime, 1, 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1]
...is a denotation of a number not involving any base. The answer of
Mathematica is
Out[46]= 648391
In decimal form, just to our educated eyes, perhaps not quite so for the
Babylonians. To enjoy Leibniz, we might just do
In[47]:= BaseForm[%, 2]
Out[47]//BaseForm=
"10011110010011000111"\_"2"
Clearly this is a string (as was the printed form of Out[46]).
To enter a number we have to do quite the converse; again decimals are in
favour and we don't normally recognize what we are doing. In Mathematica we
have got a choice yet:
In[39]:= n = 2^^1000111
Out[39]= 71
In[40]:= BaseForm[n, 2]
Out[40]//BaseForm=
"1000111"\_"2"
In[41]:= % + 1
Out[41]= 72
The part "^^" of the input string "2^^1000111" is not a Mathematica Operator
but a terminal of input syntax. It is parsed on reading input to encode the
denoted number correctly.
The input syntax "^^" (number base)and the printing form BaseForm have their
limitations though (see also The Book §3.1.3, A.2.5). Perhaps you liked to
check out
In[81]:= IntegerDigits[n, 2]
Out[81]= {1, 0, 0, 0, 1, 1, 1}
In[82]:= FromDigits[Rest[%], 2]
Out[82]= 7
In[84]:= IntegerDigits[n, 50, 3]
Out[84]= {0, 1, 21}
where we're back at mathematics.
--
Hartmut Wolf
>-----Original Message-----
>From: AON NEWS [mailto:frodo.biggins at gmx.net]
To: mathgroup at smc.vnet.net
>Sent: Tuesday, February 04, 2003 8:23 AM
>To: mathgroup at smc.vnet.net
>Subject: [mg39261] [mg39226] Simple Problem ??
>
>
>Hi
>it seems I have a simple problem, but I cannot find a (simple)solution:
>
>if I type 2^^1000111 mathematica calculates the correct dec. number
>
>but if I type: base=2; number=1000111; base^^number all I get
>is a error
>message ???
>
>So a function Convert[number_,base_] for base convertions
>cannot work ...
>Any ideas
>Thx
>Werner
>--
>
>***************************************************************
>Prof. Mag. Werner CYRMON
>HTBLuVA Wr. Neustadt Abt. EDVO
>http://edvowww.htlwrn.ac.at/cyx
>***************************************************************
>If you can imagine it, you can do it! Walt Disney
>***************************************************************
>Want to learn math with fun or calculating some stuff online:
>Look at http://Onlinemath.htlwrn.ac.at
>
>
>