C++10进制转16进制

xiaoxiao2021-02-28  12

10进制转16进制是常用的算法,一般利用循环做除法求余数的方法来求解。由于先求出来余数要最后输出,给这个问题增加了难度,在学习过程中发现一个利用字符串巧妙解决该问题的方法:

#include<iostream> #include<string> using namespace std; int main() { long a;//输入的数 int y=0;//循环中的余数 string s="";//输出的结果 cin>>a; if(a==0)//0比较特殊,单独处理 { cout<<0; return 0; } while(a>0)//大于0的数 { y=a; //求余 if(y<10) //小于10的余数 s=char('0'+y)+s; //利用字符的ascll码在字符串前面拼接 else s=char('A'-10+y)+s; //大于9的余数用ABCDE表示 a=a/16; } cout<<s; return 0; }
转载请注明原文地址: https://www.6miu.com/read-2050043.html

最新回复(0)