0

私は質問があります、多分それはばかげています.指数を計算するためにそのコードを書きました:

#include<stdio.h>

int i=0;
float power(int a,int b);
main()
{     int base,exp;
      printf("Base:\n");
      scanf("%d",&base);
      printf("Exp:\n");
      scanf("%d",&exp);
      power(base,exp);
      system("pause");
      }
float power(int a,int b)
{     float result=1;
      for (i=0;i<b;i++)
      {
          result=result*a;
          }
      printf("result = %lf \n",result);
      }

私が混乱したのは、入力として base=2 と exp=100 を指定したところ、出力が正しかったことです。私が理解できないのは、float 型が 4byte=32 ビットであっても、プログラムがどのように正しい数値を計算するのかということです。 float(result) 変数が取得できる最大数は 2^32-1<<2^100 であることを意味します

4

1 に答える 1