unsigned __int32 hentai, doutei;
 hentai = 293317826;
 doutei = 899523;

仮に上のように hentai と doutei に格納された数値において、
hentai += doutei;  // 293000000 + 899253
のように hentai の下6桁を0にして doutei を加算し、下6桁を doutei にしたい。

条件は
if ( hentai > doutei &&
  doutei >= 0 &&
  doutei < 1000000)

で、思いついたのが
hentai = ((hentai / 1000000) * 1000000) + doutei;

納得がいかないのでスマートなやり方教えてくれ。