我寫了一個簡單的程序是:如何使用pow()函數計算C++中超過2^32的功率?
#include<iostream>
#include<cmath>
int main()
{
int t, n;
int count = 0;
std::cin>>t;
for(int i = 0; i < t; i++)
{
std::cin>>n;
int num = n;
while(num > 0)
{
num = num/2;
count++;
}
}
std::cout<<"\n count "<<count<<std::endl;
std::cout<<pow(2, count-1)<<std::endl;
return 0;
}
在這裏,我想我的程序,當我使用該輸入像
t = 1 n = 1000000000000000 (10^15)
輸入現在的工作那麼程序的輸入緩衝區永遠不會結束(即關閉程序,我們必須按ctrl + c
)。我猜想電源功能存在問題。所以我想知道如何在C++中避免這種情況。
我想知道是否有可能在C++中計算2^32
的值?通過pow()或通過任何其他手動方法。
英特斯可以保持整數達到:2,147,483,647 –
@DenisRadinski對於32位有符號整數,這是正確的。無符號32位整數可以保持最大值4,294,967,295。 –
@DenisRadinski--無論是C還是C++標準都要求這樣做。 'int'只需要保存-32,767到32,767(即16位)的值,但是編譯器可以用更大的類型實現它們。 –