在C語言或者C++中數據都有范圍
unsigned int 0~4294967295
int -2147483648~2147483647
unsigned long 0~4294967295
long -2147483648~2147483647
long long:-9223372036854775808~9223372036854775807
unsigned long long:0~18446744073709551615
#include <iostream>
using namespace std;
int main()?
{
? ? int c ;
? ? c = 21474836471;
? ? cout<<c;
? ? return 0;
}
此時由于超int的數據類型范圍,所以輸出了亂碼。
改為最大范圍的unsigned long long類型就能輸出
#include <iostream>
using namespace std;
int main(void)?
{
? ? unsigned long long c ;
? ? c = 21474836471;
? ? cout << c;
? ? return 0;
}如果連的unsigned long long類型都超過,就只能這樣了
#include <bits/stdc++.h>
using namespace std;
const int N = 9999999;
string c = "139922498948348494839893839849982938938928292";
int a[N];
int main()?
{
? ? for (int i = 0; i < c.length(); i++)?
? ? {
? ? ? ? a[i] = c[i] - '0';
? ? }
? ? for (int i = 0; i < c.length(); i++)?
? ? {
? ? ? ? cout << a[i];
? ? }
}
?