1) I noticed the following behaviour:
Code: Select all
> (set 'a (pow 2 16))
65536
> (println (>> a 31))
0
> (println (>> a 32))
65536
2) The range for integer numbers is mentioned to be between -2,147,483,648 and +2,147,483,647. The manual says: 'Integers are 32 bit plus including sign bit. Valid integers are numbers between -2,147,483,648 and +2,147,483,647. Bigger numbers are truncated to one of the two limits.' (Paragraph 'Evaluation rules and data types').
Code: Select all
> (set 'a (pow 2 32))
4294967296
> (set 'a (- (pow 2 32) 1))
2147483646
> (set 'a (sub (pow 2 32) 1))
4294967295
Peter