运行一段代码 环境是VC6.0 控制台中
DWORD tmep = 2009; 
for (int i=0; i<=50; i++)
{
printf("%dbits = %u\r\n", i, tmep << i);
}
DWORD的范围是32位,在左移32位后应该溢出,在后面的应该都位零,但运行结果却是下面的状况,不解,
0bits = 20091bits = 40182bits = 80363bits = 160724bits = 321445bits = 642886bits = 1285767bits = 2571528bits = 5143049bits = 102860810bits = 205721611bits = 411443212bits = 822886413bits = 1645772814bits = 3291545615bits = 6583091216bits = 13166182417bits = 26332364818bits = 52664729619bits = 105329459220bits = 210658918421bits = 421317836822bits = 413138944023bits = 396781158424bits = 364065587225bits = 298634444826bits = 167772160027bits = 335544320028bits = 241591910429bits = 53687091230bits = 107374182431bits = 214748364832bits = 200933bits = 401834bits = 803635bits = 1607236bits = 3214437bits = 6428838bits = 12857639bits = 25715240bits = 51430441bits = 102860842bits = 205721643bits = 411443244bits = 822886445bits = 1645772846bits = 3291545647bits = 6583091248bits = 13166182449bits = 26332364850bits = 526647296还请DX指导一二,期待