我對無符號整型和雙轉換順序感到困惑。我認爲,在計算表達式時,中間類型是一個與代表組的最大基數,但這裏的代碼無符號整型和雙轉換順序
unsigned int a1 = 4294967290, a2 = 4294967100;
unsigned int value1 = (a2 - a1) * double(0.1);
std::cout << value1 << std::endl;
unsigned int value2 = int(a2 - a1)* double(0.1);
std::cout << value2 << std::endl;
當微軟編譯器編譯,我得到這些結果:
值1 = 429496710 值2 = 4294967277
而我認爲即時型的回答應該是雙,因此值1和values2應該是平等的
在哪裏 我錯了嗎?