您的位置:首页 > 编程语言 > C语言/C++

C++十进制到各种进制转换的实现

2015-03-28 16:10 676 查看

#ifndef COUNT_ZERO_H

#define COUNT_ZERO_H

#include<iostream>

#include<cstdlib>

using namespace std;

#define JINZHI 8;//设置进制

int * dectobi(const int a)

{

int * r=new int [32] ;

for (int i = 0; i<32; ++i)//初始化数组r;

r[i] = 0;

int temp;

if (0 == a) { return r; }

else

{

if (a > 0)

{

r[31] = 0;//设置符号位

int i = 0;

temp = a;

for (; temp > 0; ++i)

{

r[i] = temp % JINZHI;//取余数赋给r[i]

temp = temp / JINZHI;//取商赋给temp,即可进行下一次计算

}

return r;

}

else

{

r[31] = 1;

int i = 0;

temp = -a;

for (; temp > 0; ++i)

{

r[i] = temp % 2;

temp = temp / 2;

}

return r;

}

}

}

#endif

#include<iostream>

#include"coutzero.h"

int main()

{

int m;

cout << "Enter an int number(Nonnumber to quit) : ";

while (cin >> m&&cin.get() == '\n')//输入为数字,而且读取数字后的字符为回车,这样就可以避免-15k这样的输入能进入计算

{

int *r;

r = dectobi(m);

for (int i = 0; i < 32; ++i)

cout << *(r + 31 - i) << "\t";

cout << "\nEnter an int number (Nonnumber to quit) : ";

delete r;

//cin.get();

//cin >> m;

}

return 0;

}



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: