8

パフォーマンスの観点から、ビット単位の操作に& | ^ ~BigInteger ( ) を使用するよりも、純粋なビット単位の操作 ( ) を使用する利点はありますか? BigInteger.and BigInteger.orメモリー?他に何か?

結果のコードがはるかに読みやすいため、ビットごとの操作に BigInteger を使用します。

私が使用するコードの例:

BigInteger bNum1 = new BigInteger("0");
BigInteger bNum2 = new BigInteger("0");
BigInteger bNum3 = new BigInteger("0");
bNum1 = bNum1.setBit(0);
bNum2 = bNum2.setBit(1);
bNum3 = bNum3.setBit(2);

BigInteger bMask = bNum3.or(bNum1);

System.out.println(bMask.and(bNum1).equals(bMask));
System.out.println(bMask.and(bNum2).equals(bMask));
System.out.println(bMask.and(bNum3).equals(bMask));
System.out.println(bMask.and(bMask).equals(bMask));


int num1 = 1 << 0;
int num2 = 1 << 1;
int num3 = 1 << 2;

int mask = num3 | num1;

System.out.println((mask & num1) == mask);
System.out.println((mask & num2) == mask);
System.out.println((mask & num3) == mask);
System.out.println((mask & mask) == mask);
4

1 に答える 1