ビットごとの XOR とべき乗演算子
C/C を使用する場合、プログラマはよく "^" 演算子に遭遇します。ただし、これらの言語では、「^」は累乗ではなく、ビットごとの XOR 演算を表します。数値の累乗を計算する場合は、
たとえば、次のコードは、1 から 4 までの数値 (a) のべき乗の合計を計算することを目的としています。ただし、べき乗演算子の代わりにビット単位の XOR 演算子を使用しています。
#include <stdio.h> void main(void) { int a; int result; int sum = 0; printf("Enter a number: "); scanf("%d", &a); for( int i = 1; i <= 4; i++ ) { result = a ^ i; sum += result; } printf("%d\n", sum); }
ご覧のとおり、^ 演算子は、a の i 乗ではなく、a と i (1 ~ 4) の間でビットごとの XOR 演算を実行します。必要な電力計算を取得するには、次のように pow() 関数を使用する必要があります。
result = (int) pow((double) a,i);
pow() オーバーロードは double を返すため、引数の 1 つを double にキャストし、結果を int にキャストする必要があります。 intではありません。さらに、C99 は、float 計算とlong double 計算用の powf 関数と powl 関数をそれぞれ提供します。
以上がビットごとの XOR と C/C のべき乗演算子の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。