Posts ID:134311 Favorites Creations
ID:134311

 ```mob/verb/Check1() var/hf = 99999999999999999999999999999999999999999 world << num2text(hf,100000) ```

That outputs exactly "2147483648".

 ```mob verb Check2() var N = 2 while(1) sleep(1) N*=2 usr<<"[num2text(N,100000)]" ```

That manages to approach infinity (and much higher numbers than 2147483648 before reaching infinity).

Is there a reason why one's able to go much higher than the other?
DeathAwaitsU wrote:
 ```> mob/verb/Check1()> var/hf = 99999999999999999999999999999999999999999> world << num2text(hf,100000)> ```

That outputs exactly "2147483648".

 ```> mob> verb> Check2()> var N = 2> while(1)> sleep(1)> N*=2> usr<<"[num2text(N,100000)]"> ```

That manages to approach infinity (and much higher numbers than 2147483648 before reaching infinity).

Is there a reason why one's able to go much higher than the other?

It seems that different operations yield different limits. For example, numbers can't increment as highly as they can be multiplied:
 ```mob verb Check2() set background = 1 var N = 2 while(1) var/temp = N N*=2 if(N == temp) src << "Non-changing value!" break else if(N > 4294967296) src << "Multiplication extends upwards of 4294967296 + \ [num2text(N-4294967296,100000)]" break sleep(0) N = 0 while(1) var/temp = N if(++N == temp) src << "Addition stops at: [num2text(N, 100000)]" break ```

Outputs:
Multiplication extends upwards of 4294967296 + 2147483648