D arithmetic problem

davidl davidl at nospam.org
Tue Jun 2 19:45:10 PDT 2009


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?


-- 
使用 Opera 革命性的电子邮件客户程序: http://www.opera.com/mail/



More information about the Digitalmars-d mailing list