十进制转换成十六进制的问题
来源:互联网 发布:银行理财经理 知乎 编辑:程序博客网 时间:2024/05/21 21:48
如果是整形转换成16进制比较简单,如果是很大的一个整数呢? 比如 123456789123456789.
参考文章 http://www.cnblogs.com/phinecos/archive/2009/09/11/1564975.html
下面是基于这种思想自己实现的。
#include <iostream>#include <vector>#include <string>#define HEX 16char s[] = "0123456789ABCDEF"; //字典//将一个整数转换成十六进制void dec2hex(int n,std::string& strHex){std::vector<int> vecRemainder;int nTemp = n;while(nTemp != 0){vecRemainder.push_back(nTemp%HEX);nTemp /= HEX;}std::vector<int>::const_iterator itor = vecRemainder.begin();for (; itor != vecRemainder.end();itor++){strHex.insert(strHex.begin(),1,s[*itor]);}}//将一个大的十进制转换成十六进制void dec2hex(std::string strDec,std::string& strHex){//这一步只是把strDec字符串存到int向量中std::string::const_iterator itor_str = strDec.begin();std::vector<int> vecDec;for (; itor_str != strDec.end(); itor_str++){if ( '0' <= (*itor_str) && '9' >= (*itor_str)){vecDec.push_back(*itor_str - '0');}}//用来保存每一轮的余数std::vector<int> vecRemainder;while ( vecDec.size() !=0){std::vector<int> vecTem=vecDec;//vecDec用来保存下一轮的商vecDec.clear();std::vector<int>::const_iterator itor_temp = vecTem.begin();int nTemp = 0;bool bStart = true;for (;itor_temp != vecTem.end(); itor_temp++){nTemp = nTemp*10 + *itor_temp;if ( bStart && nTemp/16 <1){continue;}bStart = false;vecDec.push_back(nTemp/16);if ( nTemp/16 > 0){nTemp = nTemp%16;}}vecRemainder.push_back(nTemp);}std::vector<int>::const_iterator itor = vecRemainder.begin();for (; itor != vecRemainder.end();itor++){strHex.insert(strHex.begin(),1,s[*itor]);}}int main(){//std::string strDec = "161";std::string strDec = "1234567891234567891";std::string strHex;dec2hex(strDec,strHex);return 0;}
0 0
- 十进制转换成十六进制的问题
- 十六进制转换为十进制的效率问题
- 十六进制、十进制的转换
- 十六进制转换成十进制
- 十进制转换成十六进制
- 十进制转换成十六进制
- 十进制转换成十六进制
- 十六进制转换成十进制的方法
- 十进制和十六进制的转换
- 十六进制与十进制的转换
- 将一个十六进制字符串转换为十进制数值的问题
- 将一个十六进制“字符串”转换为十进制数值的问题
- 将一个十六进制字符串转换为十进制数值的问题
- 将一个十六进制字符串转换为十进制数值的问题
- 将一个十六进制字符串转换为十进制数值的问题
- 将一个十六进制字符串转换为十进制数值的问题
- 将一个十六进制字符串转换为十进制数值的问题
- 将一个十六进制字符串转换为十进制数值的问题
- 一款兼容性好,自动变化的javascript 祝贺词代码(根据不同的节日自动显示不同的祝贺词)
- 混合开发模式下主流移动开发平台分析
- _00004 Hadoop NameNode源码浅析(RPC是基础)
- 代码规范
- 2014最值得学习的语言—必须是R
- 十进制转换成十六进制的问题
- Linux命令行性能检测工具
- java基础视频课堂笔记第一讲
- Linux学习记录--shell变量
- win7 64位成功安装theano,并且gpu配置成功
- android打老鼠游戏简单介绍
- hbase介绍
- linux编程之emacs
- 空间数据与索引分开存储管理