0

このライブラリを使用しました。BigUnsigned の数値に対してビット操作を実行する必要があります。

私のコードは

#include "BigIntegerLibrary.h"
BigUnsigned n1;

for (int i = 0; i < 100;i++)
{
    if (i < 5)
    {
        n1.setBit(i,true);
    }
    else
    {
        n1.setBit(i,false);
    }
}

BigUnsigned n2;
n2 = n1;
n2.bitShiftLeft(n2 , 40);

の代わりにn2is が表示されます。なぜこうなった?034084860461056

4

1 に答える 1

4

おそらく、ライブラリの実装と関係があります。このタスクにはGMPを使用することを強くお勧めします。私のソリューションは次のようになります。

#include <iostream>
#include <gmpxx.h>
using namespace std;

int main() {

    mpz_class n2 = 0x1F;

    n2 <<= 40;

    cout << n2 << endl;

    return 0;
}
于 2012-07-26T05:57:37.830 に答える