此处新增,以及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;
}