ホームページ >バックエンド開発 >C++ >C コードの「^」演算子がべき乗を正しく計算しないのはなぜですか?

C コードの「^」演算子がべき乗を正しく計算しないのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-20 11:18:15275ブラウズ

Why Isn't My C Code's

電力演算子が期待どおりに動作しないのはなぜですか?

提供された C コードで、「^」を使用しようとしています。電源操作を実行するオペレーター。ただし、「^」は C/C のべき乗演算子として機能しないため、出力は正しくありません。代わりに、ビット単位の XOR 演算子として定義されています。

このコードは、1 から 4 までの入力された数値「a」のべき乗の合計を計算することを目的としています。これを正しく達成するには、pow()関数を使用する必要があります。これには、引数の 1 つを double にキャストする必要があります。変更されたコードは次のようになります。

#include <stdio.h>

void main(void)
{
    int a;
    double result;
    int sum = 0;
    printf("Enter a number: ");
    scanf("%d", &a);
    for( int i = 1; i <= 4; i++ )
    {
        result = (int) pow((double) a,i);
        sum += result;
    }
    printf("%d\n", sum);
}

さらに、C99 以降、powf() 関数と powl() 関数が、それぞれ float および long double 引数をサポートするために導入されたことにも注意してください。

以上がC コードの「^」演算子がべき乗を正しく計算しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。