2016-11-07 4 views
-2

2^32までのインターをロードする必要があります。最大2^32の整数をロードする

多くのリソースは、cinまたはscanfは、この大きな数値をロードしないことを示しています。

このような大きな数値をロードする最も最適な方法は何ですか?

+0

'uint64_t'または' int64_t'が高くなる可能性があります。それを超えて、bignumライブラリを調べる必要があります。 – druckermanly

+3

「ロードしていますか? – OldProgrammer

+0

2^32の値を扱える整数が必要ですか?または、2^32バイトをメモリにロードしますか? – Logman

答えて

1

std::cinscanfのいずれかの動作しなければならない:

#include <cinttypes> 
#include <cstdio> 
#include <iostream> 
int main() 
{ 
    uint32_t n; 

//with iostreams 
    std::cin >> n; 
    std::cout<<"read: "<<n<<'\n'; 

//with stdio 
    scanf("%" SCNu32, &n); 
    printf("read: %" PRIu32 "\n", n); 

} 

のいずれかが最大だが、NO 2^32を含む(および0以上整数)をロードします。より広い範囲が必要な場合は、64ビットの整数(符号付きまたは符号なし)を試してください。

+0

これは最大2^32 - 1をロードします。 –

+0

@MM多分私はそれを間違って使用しているかもしれませんが、通常 "〜まで"と "〜まで"を区別しています。あまりにも多くの一口私のように思える。 – PSkocik

関連する問題