如何改变<cmath> pow函数的返回类型?

时间:2017-03-23 12:09:53

标签: binary return-type pow

此处新增,以及C ++ ..

我已经编写了一些代码来将十进制数转换为二进制数。在这样做时,我被迫编写自己的函数来将基数提高到某个指数。我原本试图使用cmath pow函数,但是因为这会返回一个double,所以它不起作用。 (在计算“余数”变量时,我试图将整数除以一倍。)

有没有办法获取诸如pow之类的cmath库函数并改变返回类型(在本例中为int),从而节省了提出我自己的函数的需要?或者我首先将“n”指定为整数是错误的,我应该在任何地方使用双数据类型?

提前致谢

#include <iostream>
using namespace std;

int power(int a,int b){
    if(b==0){
        return 1.0;
    }
    else{
        return a*power(a,b-1);      
   }
  }

void Convert(int n){
vector<int>a(32);
int one_count=0;
int remainder;

for(int i=0;i<32;i++){
    remainder=(n/(power(2,i))%2);
    if(remainder==1){
        one_count++;
    }
    a[31-i]=remainder;
    if(n/power(2,i)==0){
        break;
    }
    }
    cout << "The 32 bit representation of " << n << " is "; 
    for(int i=0;i<32;i++){
        cout << a[i];
    }
    cout << " and it has " << one_count << " set bits." << endl;

}

0 个答案:

没有答案