Bernat,

On 02 May 2011, at 11:13, Bernat Romagosa wrote:

> Hi, try to run the following:
> 
> (2 raisedTo: 100000) digitAt: 1
> 
> The expected result (if I understood what digitAt: should return) is 9, but 
> the message returns 0 instead. In fact, it returns 0 for any index.
> 
> Is this a bug or am I missunderstanding how digitAt: should work?
> 
> Cheers,
> 
> Bernat Romagosa.
> 
> p.s. My config is Pharo 1.2 with a 'Croquet Closure Cog VM [CoInterpreter 
> VMMaker-oscog.51]' on Debian Lenny.

Consider, 

2 raisedTo: 32

#digitAt: for digits 1 to 4 returns 0, 5 return 1.
From the comments you can see that the number is looked at in base 256.
The above number thus has 5 digits in this base, four are zero and the highest 
one is one.
Furthermore, the first digit is the lowest one.
If you inspect the number it might become clearer.

Any #digitAt: has to depend on the base you use to represent the number, this 
one doesn't, so it seems to be useful only to return internal parts of a number.

HTH,

Sven


Reply via email to