Integer overflow: Difference between revisions
Content added Content deleted
Drkameleon (talk | contribs) |
m (→{{header|Phix}}: added syntax colouring the hard way, phix/basics) |
||
Line 1,700: | Line 1,700: | ||
=={{header|Phix}}== |
=={{header|Phix}}== |
||
{{libheader|Phix/basics}} |
|||
Phix has both 32 and 64 bit implementations. Integers are signed and limited to 31 (or 63) bits, ie |
Phix has both 32 and 64 bit implementations. Integers are signed and limited to 31 (or 63) bits, ie |
||
-1,073,741,824 to +1,073,741,823 (-#40000000 to #3FFFFFFF) on 32 bit, whereas on |
-1,073,741,824 to +1,073,741,823 (-#40000000 to #3FFFFFFF) on 32 bit, whereas on |
||
Line 1,705: | Line 1,706: | ||
Integer overflow is handled by automatic promotion to atom (an IEEE float, 64/80 bit for the 32/64 bit implementations respectively), |
Integer overflow is handled by automatic promotion to atom (an IEEE float, 64/80 bit for the 32/64 bit implementations respectively), |
||
which triggers a run-time type check if stored in a variable declared as integer, eg: |
which triggers a run-time type check if stored in a variable declared as integer, eg: |
||
<lang Phix> |
<!--<lang Phix>--> |
||
<span style="color: #004080;">integer</span> <span style="color: #000000;">i</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">1000000000</span> <span style="color: #0000FF;">+</span> <span style="color: #000000;">1000000000</span> |
|||
<!--</lang>--> |
|||
{{out}} |
{{out}} |
||
<pre> |
<pre> |