D arithmetic problem
Denis Koroskin
2korden at gmail.com
Wed Jun 3 06:52:12 PDT 2009
On Wed, 03 Jun 2009 06:45:10 +0400, davidl <davidl at nospam.org> wrote:
> Following two piece of code demonstrate different behaviors currently.
>
> import std.stdio;
> void main()
> {
> uint v;
> v=31234;
> byte t= -1;
> v |= t;
> writefln(v);
> }
>
> Output:4294967295
>
> import std.stdio;
> void main()
> {
> uint v;
> v=31234;
> byte t= -1;
> v |= cast(ubyte)t;
> writefln(v);
> }
>
> Output:31487
>
> I would always want the second result. What's your opinion?
>
>
Shouldn't bitwise operations be disallowed on signed types at all?
More information about the Digitalmars-d
mailing list