elisp: Integer Type
2.3.1 Integer Type
------------------
The range of values for an integer depends on the machine. The minimum
range is −536,870,912 to 536,870,911 (30 bits; i.e., −2**29 to 2**29 −
1) but many machines provide a wider range. Emacs Lisp arithmetic
functions do not check for integer overflow. Thus ‘(1+ 536870911)’ is
−536,870,912 if Emacs integers are 30 bits.
The read syntax for integers is a sequence of (base ten) digits with
an optional sign at the beginning and an optional period at the end.
The printed representation produced by the Lisp interpreter never has a
leading ‘+’ or a final ‘.’.
-1 ; The integer −1.
1 ; The integer 1.
1. ; Also the integer 1.
+1 ; Also the integer 1.
As a special exception, if a sequence of digits specifies an integer too
large or too small to be a valid integer object, the Lisp reader reads
it as a floating-point number (Floating-Point Type). For
instance, if Emacs integers are 30 bits, ‘536870912’ is read as the
floating-point number ‘536870912.0’.
Numbers, for more information.