C++ 用递归函数 将 十进制数n转换为十六进制数,要能正确输出。

 我来答
liubird
推荐于2018-04-05 · TA获得超过1932个赞
知道小有建树答主
回答量:898
采纳率:100%
帮助的人:935万
展开全部
#include<stdio.h>
#include <stdlib.h>

void trans( int n, char *buf)
{
char *p = buf, *q, c;
int d;
while(n>0) {
d = n %16;
if( d <10) {
*p = d + '0';
} else {
*p = d - 10 + 'A';
}
p ++;
n /=16;
}
*p = '\0';
for(p--, q=buf; q<p; q++, p--) {
c = *q;
*q = *p;
*p = c;
}
}
main()
{
int n=156;
char res[10];
trans(n, res);
printf("%s\n", res);
}

如果只是想输出的形式变化的话,那就很简单了,直接有%x就可以输出16进制的形式:
int n = 78;
printf("%x\n", n);
最会的输出是: 4e
mia☆jiancha☆ce6608
2011-12-21 · TA获得超过1526个赞
知道小有建树答主
回答量:713
采纳率:100%
帮助的人:494万
展开全部
用这个数除16取余算啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liu2386679
2012-03-17
知道答主
回答量:19
采纳率:0%
帮助的人:6.7万
展开全部
南航人?????
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
icecoobe
推荐于2016-08-12 · TA获得超过1989个赞
知道小有建树答主
回答量:1058
采纳率:100%
帮助的人:1105万
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;

void dec2hex(int num);

int main( void )
{
int num = 0;
printf("Please input an integer:\n");
scanf("%d", &num);

cout << "0x";
dec2hex( num );
cout << endl;
system( "pause" );
return 0;
}

void dec2hex(int num)
{
int remainer = 0;
if ( num / 16 != 0 )
{
dec2hex( num / 16 );
}
remainer = num % 16;
printf( "%x", remainer );
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式