用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]=x%16+'0';
    else num[++cnt]=x%16-10+'A';
}
int main(){
    cin>>n;
    dfs(n);
    for(int i=1;i<=cnt;i++)
      cout<<num[i];
    return 0;
}

这是循环的

#include <stdio.h>
#include <iostream>
using namespace std;
int n,cnt=0;
char num[10];
int main(){
cin>>n;
while(n/16!=0){
  int tmp=n%16;
  if(tmp<10) num[++cnt]=tmp+'0';
  else num[++cnt]=tmp-10+'A';
  n/=16;
}
if(n!=0)
  if(n<10) num[++cnt]=n+'0';
  else num[++cnt]=n-10+'A'; 
for(int i=cnt;i>=1;i--)
  cout<<num[i];
return 0;
}

温馨提示:内容为网友见解,仅供参考
无其他回答

用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]=...

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

C++字符串10进制转16进制
用 sscanf 和 sprintf sscanf %x , 再 sprintf %d 16进制转10进制 sscanf %d , 再 sprintf %x 10进制转16进制 例如:10进制转16进制 char s1[8]="23456",s2[8];int i;sscanf(s1,"%d",&i);sprintf(s2,"%x",i);printf("%s",s2);...

想用c++制作一个程序,10进制转成2~16进制,比如我在参数输入 100 b16...
这样得到的字符串应该是转换完成的,直接输出即可

怎样用数组将十进制数转化成十六进制
用个递归 万事大吉!program cxxx401;var i,n:integer;procedure work(n:Integer);var m:integer;begin if n=0 then exit else begin m:=n mod 16;work(n div 16);case m of 10:write('A');11:write('B');12:write('C');13:write('D');14:write('E');15:write('F');else...

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转换...
2012-03-29 怎么写一个c++程序,要求用递归函数将十进制数转化成十六进制... 3 2020-01-20 c++题目求解 2010-11-05 C++:设计函数求将整数转换为十六进制(字符数组的方式),要... 2 2016-12-11 用c++编写递归将十进制转换为十六进制 7 2011-11-04 用C++设计一个程序,输入一个十进制整数,输出相应的...

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

c++逆序输出问题(用递归函数)
using namespace std;\/*这里以及先前程序中std::cout中的std是命名空间,在C++编程中必须要用到的,如果将iostream改为iostream.h,可以去掉这里的语句,因为头文件中已经声明命名空间了。*\/ void inverse(int x,int n=0){ if (x&&!n&&x%10==0) inverse(x\/10,n);else if (x) { cout<<...

编程菜鸟送分,用C++编写十进制转换成二进制(在线等10点关闭)
include<iostream.h> void int2bin(int var){ if (var==1){ cout<<"1";}else{ int2bin(var\/2);cout<<var%2;} } void main(){ int a;cout<<"输入一个大于0的整数:";cin>>a;int2bin(a);}

相似回答