April 16, 2007 writefln + unsigned numbers | ||||
---|---|---|---|---|
| ||||
Hello, when playing with an array and indices that are later shifted to < 0, I found the following rather not intuitive behaviour: import std.stdio; void main() { uint j; writefln(j - 2); } results in 4294967294. I'm aware of the construction of uint, but shouldn't j be automatically converted to a larger type providing negative numbers (long) ? david |
April 16, 2007 Re: writefln + unsigned numbers | ||||
---|---|---|---|---|
| ||||
Posted in reply to david | david wrote:
> Hello,
>
> when playing with an array and indices that are later shifted to < 0, I found the following rather not intuitive behaviour:
>
> import std.stdio;
> void main()
> {
> uint j;
> writefln(j - 2);
> }
>
> results in 4294967294.
> I'm aware of the construction of uint,
> but shouldn't j be automatically converted
> to a larger type providing negative numbers (long) ?
>
> david
Why should it, that would cause even more confusion. In my opinion it should either be illegal (and caught at compile time) or stay as is.
|
Copyright © 1999-2021 by the D Language Foundation