C++将10进制字符串转为16进制字符串
来源:互联网 发布:淘宝网商城女童鞋 编辑:程序博客网 时间:2024/06/14 03:10
方法一:
推荐 直接除以16进行计算 对结果递归进行转换运算
代码如下:
#include<iostream>#include <string>using namespace std;string DecIntToHexStr(long long num){string str;long long Temp = num / 16;int left = num % 16;if (Temp > 0)str += DecIntToHexStr(Temp);if (left < 10)str += (left + '0');elsestr += ('A' + left - 10);return str;}string DecStrToHexStr(string str){long long Dec = 0;for (int i = 0; i < str.size(); ++i)Dec = Dec * 10 + str[i] - '0';return DecIntToHexStr(Dec);}int main(){string DecStr;while (cin >> DecStr){cout << "0x" + DecStrToHexStr(DecStr);}return 0;}
方法二:先十进制转为二进制,然后再每四位进行合并转为16进制
代码如下:
#include<iostream>#include <string>#include<vector>#include <sstream>#include <math.h>using namespace std;int main(){string decStr;cin >> decStr;int num = stoi(decStr);vector<int>v;while (num){int bit = num % 2;v.push_back(bit);num = num / 2;}reverse(v.begin(), v.end());string hexStr;if (v.size() % 4 == 0){for (int i = 0; i < v.size() / 4; ++i){int temp = 0, k = 3;for (int j = i * 4; j < (i + 1) * 4; ++j){if (v[j] == 1)temp += pow(2, k);--k;}if (temp <= 9)hexStr += temp;elsehexStr += ('A' + temp - 10);}}else{int zeroNum = 4 - v.size() % 4;for (int i = 0; i < zeroNum; ++i)v.insert(v.begin(), 0);for (int i = 0; i < v.size() / 4; ++i){int temp = 0, k = 3;for (int j = i * 4; j < (i + 1) * 4; ++j){if (v[j] == 1)temp += pow(2, k);--k;}if (temp <= 9){stringstream ss;string strTemp;ss << temp;ss >> strTemp;hexStr += strTemp;}elsehexStr += ('A' + temp - 10);}}cout << hexStr << endl;return 0;}
0 0
- 将整型转为16进制字符串
- C++将10进制字符串转为16进制字符串
- 16进制字符串转为二进制字符串
- 16进制字符串转为 字符串
- 16进制字符串转为10进制
- iOS Objective c 16进制字符串转为二进制数组
- 将10进制的字符串转为16进制的byte
- c函数实现将一个整数转为任意进制的字符串输出
- 16进制字符串转为整型
- 16进制字符串转为整型
- 16进制颜色字符串转为UIColor
- 16进制字符串转为二进制
- 16进制字符串转为图片
- asp.net 16进制字符串转为中文字符串
- Java将其他进制字符串转为十进制和用英文句号分割字符串
- [面试]16进制字符串转为10进制整数
- 解析字符串,每8位将2进制转为16进制
- 请编写一个C函数,该函数可以实现将一个整数转为任意进制的字符串输出
- Visual Studio 2010 实用功能总结
- Java数组-查表法-进制转换
- Tomcat是如何将JSP代码编译成Servlet代码的?
- Leetcode 282. Expression Add Operators
- 数据结构与算法学习(五)HashMap
- C++将10进制字符串转为16进制字符串
- break,continue,return,exit的区别
- NameCheap+DigitalOcean部署网站
- linux常用命令4-文件链接ln
- hdu 1325 Is It A Tree?(并查集)
- VS2010 运行速度加快方法
- windows 声音处理
- onCreat() 方法
- C++11新特性