私は奇妙な問題があります。私は10進数から2進数に変換する簡単な関数を作成しました。引数は10進数の数値を表すint値で、関数は2進数を表すビットセットを返します。10進数から2進数に変換してビットセットを返すときの問題
10000000000000000000000000000000(10進数で2,147,483,648)より小さい2進数の変換は完全に機能しますが、変換する数値が高いほど変換が正しく機能しません。間違いはどこですか?ここで
私はあなたの機能を送る:すべてのあなたの助けを事前に
bitset<15000> Utilities::getDecToBin(int dec)
{
bitset<15000> columnID;
int x;
for(x=0;x<columnID.size();x++)
{
columnID[x]=dec%2;
dec=dec/2;
}
return columnID;
}
感謝を! :D
算術演算の代わりに論理演算子を使用することをお勧めします: 'columnID [x] = dec & 1; dec >> = 1;' –