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
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-12-21
用这个数除16取余算啊
第2个回答  2012-03-17
南航人?????
第3个回答  推荐于2016-08-12
#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 );
}本回答被提问者采纳

C++ 用递归函数 将 十进制数n转换为十六进制数,要能正确输出。
{ int n=156;char res[10];trans(n, res);printf("%s\\n", res);} 如果只是想输出的形式变化的话,那就很简单了,直接有%x就可以输出16进制的形式:int n = 78;printf("%x\\n", n);最会的输出是: 4e

用c++编写递归将十进制转换为十六进制
这个和十进制转成二进制很像 假设这个十进制数为n 就是不断取模,除以十六。。。一直到n==0 下面的是递归求解 include <stdio.h>#include <iostream>using namespace std;int n,cnt=0;char num[10];void dfs(int x){ if(x\/16!=0) dfs(x\/16); if((x%16)<10) num[++cnt]=...

...将十进制整数转换为十六进制整数用递归法将十进制整数n转换为十六...
2020-10-19 · 把复杂的事情简单说给你听 知道顶级答主 回答量:7.7万 采纳率:90% 帮助的人:9184万 我也去答题访问个人页 关注 展开全部 追答 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 其他类似问题2011-12-22 C++ 用递归函数 将 十进制数n转换为十六进制数,要能正确... 6 2012-...

C++:设计函数求将整数转换为十六进制(字符数组的方式),要求用递归方式...
转换方法是:不妨假设待转换的十进制数为n,每次对n模16,得到的余数即是低位的十六进制数,模完之后对n\/=16,这样反复进行直到n=0为止。以下提供参考,可转换任意正负整数,并附上测试用例及预期输出 :]include<iostream> using namespace std;const int MAXN=100;char num[MAXN];char digit[16...

c++实现十进制到十六进制的转换
此时n = 1 ,作为函数形参再进函数。n = 15 \/ 16 = 0余15 那么递归结束,n = 1;n1 = 15;所以答案就是1F 其实就是说,你现在用的是递归,所以你调用的是整个的程序,而不是说程序的一部分,当你的if成立的情况,就有一个n1的值,而且向下执行,执行完函数,在调用,这个其实就是递归的...

...设计算法将一个十进制正整数转换为十六进制数输出。(先设计存储结构...
1、x 不为零继续,为零则跳出。2、每次将x 余16 的结果入栈(实际上是将x 的16 进制的第i 位入栈,i 表示循环次数)。函数式程序设计语言中,不同子函数的参数的种类和个数是不相同的,编译器也是使用堆栈来存储子程序的参数。递归能够增强语言的表达能力和降低程序设计难度。递归程序的递归深度...

C++编写程序,输入数n,输出n个字符的全排列,通过函数递归实现。
include <string>#include <vector>#include <iostream>using namespace std;vector<string> do_permutation(string str){ vector<string> res; if (str.size() > 1){ for (size_t i = 0; i != str.size(); ++i){ string sub_str = str.substr(0, i) + str.substr(i...

用c++ 输入一行整数,按位反序输出,要求用递归函数
include <stdio.h> void convert(int n){ int i;putchar(n%10+'0');if((i=n\/10)!=0)convert(i);} void main(){ int number;printf("请输入一个整数:");scanf("%d",&number);printf("输出:");if(number<0){ putchar('-');number=-number;} convert(number);putchar('\\n')...

用C++设计一个程序,分别设计两个递归函数,输入一个整数后,一个能实现...
include <stdio.h> void print1(int num); \/* 正序 *\/ void print2(int num); \/* 反序 *\/ int main(){ int n;scanf("%d", &n);print1(n);printf("\\n");print2(n);printf("\\n");return 1;} void print1(int num){ if(num < 0) { \/* 负数 *\/ printf("-");print...

用c++语言,从键盘输入一个十进制数n,设计两个函数,分别用于计算n的二...
这个函数负责将十进制数转换为八进制数。你可以通过递归的方式来实现这一点。std::string toOctal(int n) { if (n == 0) { return "0";} else { std::string result = toOctal(n \/ 8);result += std::to_string(n % 8);return result;} } 以上就是如何使用C++语言从键盘输入一个...

相似回答