您的位置:首页 > 其它

不是用它printf,将十进制数以二进制和十六进制的形式输出

2012-06-25 11:14 369 查看
//不是用它printf,将十进制数以二进制和十六进制的形式输出

#include "stdafx.h"

#include <iostream>

using namespace std;

//将十进制转换为2进制

char *get2string(long n){

char b[20];

static char a[20];

int i,j=0;

while (n)//取个位的数值

{

i=n%2;

n/=2;

b[j++]=i+'0';

}

for (i=0;i<j;i++)//将个位数值倒置

a[j-i-1]=b[i];

a[j]='\0';

return a;//返回字符串

}

//将十进制转换为16进制

char *get16string(long n){

char b[20];

static char a[20];

int i,j=0;

while (n)//取个位的数值

{

i=n%16;

n/=16;

if (i>9){//如果大于9,存为对应的十六进制字符

switch(i){

case 10:

b[j++]='A';

break;

case 11:

b[j++]='B';

break;

case 12:

b[j++]='C';

break;

case 13:

b[j++]='D';

break;

case 14:

b[j++]='E';

break;

case 15:

b[j++]='F';

break;

}

}

else

b[j++]=i+'0';

}

for (i=0;i<j;i++)//个位数值倒置

a[j-i-1]=b[i];

a[j]='\0';

return a;//返回字符串

}

int _tmain(int argc, _TCHAR* argv[])

{

long a;

cout<<"please input a integer:";

cin>>a;

char *p1=get2string(a);

cout<<"二进制:"<<p1<<endl;

char *p2=get16string(a);

cout<<"十六进制:0X"<<p2<<endl;

system("pause");

return 0;

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