无符号长长的算术

Jon*_*nas 0 c++ unsigned visual-c++ long-integer

我想将两个相乘,unsigned integers但我希望结果存在于一个unsigned long long变量中

unsigned long long M;
unsigned int X;
unsigned int Y;

X = 999999;
Y = 9990;
M = X * Y;
Run Code Online (Sandbox Code Playgroud)

M应该9989990010但由于某种原因它一直存在1400055418

我已经困扰了一个星期了,我想我已经到了想哭的地步!

lit*_*adv 6

你需要转换XYlong long.

M = (unsigned long long)X * Y;
Run Code Online (Sandbox Code Playgroud)

足以投射其中一个,结果将基于较大的类型.

否则结果将是int溢出.它将long long在转让时投入使用,但那太迟了:-)