你能向我解釋爲什麼這不起作用:數據類型的問題
#include <iostream>
using namespace std;
double data_convert(int n);
int main(void) {
cout << data_convert(sizeof(int));
}
double data_convert(int n) {
int i;
double x;
x = 8 * n;
for(i = 0; i < 32; i++)
x = x * 32;
return x;
}
我嘗試使用POW從CMATH,但我得到了相同的結果。顯然,這輸出「4.67681e + 049」。它應該輸出的地方(使用Windows計算器)「4294967296」。
對於這個特定的任務,for循環是我自己的硬編碼pow()
函數。我想要做的是製作一個程序,可以顯示數據類型有多大,以及它的範圍(位範圍或其他,是嗎?)
並添加轉換任何整數數據類型,需要測試應該工作,我想。 – 2010-09-07 16:45:04
不錯,難怪我在高中數學不及格。非常感謝 – Christopher 2010-09-07 16:49:29
'〜0'是錯誤的。首先,你認爲你的整數是用二進制補碼錶示的,這是他們不能的。即使如此,OP所尋找的數字也不能表示爲「int」,而只能表示爲「unsigned int」。 '(無符號)-1'應該是始終有效的答案。在二進制補碼中,你給出的數字是(int)-1。 – 2010-09-07 19:14:59