0

文字列を使用して 64 ビット バイナリを格納しています。

string aBinary;
aBinary = "100011111011101100000101101110000100111000011100100100110101100";

最初に私はこれを試しました..

stringstream ss;
ss << bitset<64>(aBinary).to_ulong();
buffer = ss.str();

cout << buffer << endl;

一部のバイナリでは機能しますが、これは機能しません。文字列コンテナに含まれる上記の64ビットバイナリを、文字列コンテナでもある10進数に変換するにはどうすればよいですか。

4

2 に答える 2

1

to_ulong()32ビットなので、オーバーフローしています。

C++-11 では、必要な関数to_ullong()が導入されています。それがない場合は、文字列を 2 つに分割し、2 つの 32 ビット数値を取得し、64 ビットに変換し、シフトと加算を行うことができます。

于 2013-05-13T03:39:47.530 に答える