digitalmars.D.learn - Is integer overflow defined?
- Sean Eskapp (2/2) Sep 01 2011 Is integer overflow defined (for instance, as being mod 2^size)? Can I
- Timon Gehr (6/8) Sep 01 2011 I am quite sure that all operations are defined as operations on two's
- Sean Eskapp (2/10) Sep 01 2011 Ah, good points, thanks!
- bearophile (4/5) Sep 01 2011 Uhmmmm.
- Timon Gehr (6/11) Sep 02 2011 For unsigned integers it is clearly defined:
Is integer overflow defined (for instance, as being mod 2^size)? Can I reliably say that -long.min == 0L?
Sep 01 2011
On 09/01/2011 06:20 PM, Sean Eskapp wrote:Is integer overflow defined (for instance, as being mod 2^size)?I am quite sure that all operations are defined as operations on two's complement integers, which would mean overflow is defined, but I cannot find the respective part of the specification...Can I reliably say that -long.min == 0L?Well no, -long.min == long.min . according to TDPL p53., that fact is defined. (unary minus: -x == ~x+1)
Sep 01 2011
== Quote from Timon Gehr (timon.gehr gmx.ch)'s articleOn 09/01/2011 06:20 PM, Sean Eskapp wrote:Ah, good points, thanks!Is integer overflow defined (for instance, as being mod 2^size)?I am quite sure that all operations are defined as operations on two's complement integers, which would mean overflow is defined, but I cannot find the respective part of the specification... > Can I reliably say that -long.min == 0L? Well no, -long.min == long.min . according to TDPL p53., that fact is defined. (unary minus: -x == ~x+1)
Sep 01 2011
Timon Gehr:according to TDPL p53., that fact is defined. (unary minus: -x == ~x+1)Uhmmmm. Bye, bearophile
Sep 01 2011
On 09/02/2011 02:45 AM, bearophile wrote:Timon Gehr:For unsigned integers it is clearly defined: 1000... => 0111... => 1000... And according to TDPL p53: "This manipulation does not raise particular questions about the signedness of val". So, it is guaranteed that it will work for long.min .according to TDPL p53., that fact is defined. (unary minus: -x == ~x+1)Uhmmmm. Bye, bearophile
Sep 02 2011