Integer literals
ric maicle via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Mon Jan 4 06:54:29 PST 2016
I was rereading the Integer Literals section and trying out some code
when I came across a couple of error messages on integer overflows.
I have reproduced the code below for reference.
void main()
{
// The maximum long value is ...807
// The following line produces an error message:
// Error: signed integer overflow
auto a = 9_223_372_036_854_775_808;
// The maximum ulong value is ...615
// The following line produces an error message:
// Error: integer overflow
auto g = 18_446_744_073_709_551_616U;
}
I just wanted to point out that the second error message might be
consistent if it says 'Error: unsigned integer overflow' in
comparison to the first error message.
Also, I noticed under the Integer Literal section of the D reference
document (http://dlang.org/spec/lex.html) that the range of uint
0U .. 4_294_967_296U
in the table Decimal Literal Types has a typo. Shouldn't the range
end with 4_294_967_295U?
Here's a snippet:
import std.stdio;
void main()
{
writeln(typeof(4_294_967_295U).stringof);
writeln(typeof(4_294_967_296U).stringof);
}
More information about the Digitalmars-d-learn
mailing list