C++ 用递归函数 将 十进制数n转换为十六进制数,要能正确输出。
展开全部
#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
#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
展开全部
用这个数除16取余算啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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 );
}
#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 );
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询