其奈公何 发表于 2021-10-24 12:59:49

教教孩子怎么扩充这个运算答案

#include <stdio.h>
#include <math.h>

int main()
{
        int result;
       
        result = pow(2,64);
       
    printf("结果是%d\n",result);
       
        return 0;
}

位数不够,加上long结果没变,加上long long结果变成-1,为什么会这样{:10_266:}
大佬快教教我怎么算{:10_285:}

大马强 发表于 2021-10-24 13:11:57

#include <stdio.h>
#include <math.h>

int main()
{
      double result;
      
      result = pow(2,64);
      
    printf("结果是%.0lf\n",result);
      
      return 0;
}

傻眼貓咪 发表于 2021-10-24 13:41:00

#include <stdio.h>
#include <math.h>

int main(){
    // 第一种情况
    double a = pow(2, 63);
    printf("第一种情况::%.0lf\n", a);

    // 第二种情况
    double b = pow(2, 64);
    printf("第二种情况::%.0lf\n", b);

    return 0;
}第一种情况::9223372036854775808
第二种情况::18446744073709551616

其奈公何 发表于 2021-10-24 15:12:52

大马强 发表于 2021-10-24 13:11


为什么我用的DEV算出来是18446744073709552000

其奈公何 发表于 2021-10-24 15:13:42

傻眼貓咪 发表于 2021-10-24 13:41


为什么我用DEV算出来是18446744073709552000

大马强 发表于 2021-10-25 12:20:57

其奈公何 发表于 2021-10-24 15:12
为什么我用的DEV算出来是18446744073709552000

这我就不太清楚了
页: [1]
查看完整版本: 教教孩子怎么扩充这个运算答案