社区
C++ 语言
帖子详情
如何把长的数字型字符串转化为16进制的字符串?
qfsb_p
2006-06-09 05:27:36
如题:
不管是思路还是源代码都欢迎,当然源代码最好,呵呵
请试这个字符串“410000000000000000188999”
...全文
518
19
打赏
收藏
如何把长的数字型字符串转化为16进制的字符串?
如题: 不管是思路还是源代码都欢迎,当然源代码最好,呵呵 请试这个字符串“410000000000000000188999”
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qfsb_p
2006-06-19
打赏
举报
回复
谢谢各位!
结贴
bjzhaoxiao
2006-06-13
打赏
举报
回复
学习中。。
du51
2006-06-11
打赏
举报
回复
for_each比tansform要快.
逸学堂
2006-06-11
打赏
举报
回复
使用%2x,转换为unsign short类型输出
OOPhaisky
2006-06-11
打赏
举报
回复
帮楼主顶一下,顺便学习...
TrueZq
2006-06-10
打赏
举报
回复
晨星厉害
qfsb_p
2006-06-10
打赏
举报
回复
对于“transform(digits.begin(), digits.end(), digits.begin(), binder2nd<minus<int> >(minus<int>(), (int)'0'));”
我不是很明白是什么作用,请晨星解释一下,谢谢。
qfsb_p
2006-06-10
打赏
举报
回复
谢谢晨星,果然不错!
下周结贴,让大家都学习学习!
晨星
2006-06-10
打赏
举报
回复
vector<int> digits里本来存放的是从字符串里拷贝来的数字字符,既各个数字的ASCII码。
为了方便计算,省得后面不断地转换来转换去,我用这个transform把digits中的每一个值减去了字符'0'的ASCII码,于是把它们转换成了各个字符对应的整数,即字符'0'被转换成了整数0,字符'1'被转换成了整数1,……
lishan2002
2006-06-09
打赏
举报
回复
strtoul
jixingzhong
2006-06-09
打赏
举报
回复
呵呵
这么大数字,
如果转换成内置数据类型是不行的,会溢出 ....
jixingzhong
2006-06-09
打赏
举报
回复
呵呵
这么大数字,
如果转换成内置数据类型是不行的,会溢出 ....
晨星
2006-06-09
打赏
举报
回复
#include <iostream>
#include <string>
#include <algorithm>
#include <functional>
#include <vector>
using namespace std;
string toHex(const string& dec);
int main() {
string dec("410000000000000000188999");
cout << toHex(dec) << endl;
}
string toHex(const string& dec) {
const char* hexDigits = "0123456789ABCDEF";
vector<int> digits;
copy(dec.begin(), dec.end(), back_inserter(digits));
transform(digits.begin(), digits.end(), digits.begin(), binder2nd<minus<int> >(minus<int>(), (int)'0'));
vector<int>::iterator first = digits.begin();
vector<int>::iterator last = digits.end();
string result;
while(first != last) {
int r = 0;
for(vector<int>::iterator i = first; i != last; i++) {
int tmp = *i + r * 10;
*i = tmp / 16;
r = tmp % 16;
}
result = hexDigits[r] + result;
while(*first == 0 && first != last)
first++;
}
return result;
}
fhb13
2006-06-09
打赏
举报
回复
如果要输出而不是进行处理就用cout,具体数值分开来存储,具体划分可以用取模的方法。
zhouhuahai
2006-06-09
打赏
举报
回复
没细看,那么长的数啊?不好意思
zhouhuahai
2006-06-09
打赏
举报
回复
先atoi, 再以%x方式来sprintf,两行代码搞定!!!
dengjun0256
2006-06-09
打赏
举报
回复
你那0x就是字符串中的二个字符,与十六进制有关吗?
qfsb_p
2006-06-09
打赏
举报
回复
比如“0x56D225004EE68C42E247”
dengjun0256
2006-06-09
打赏
举报
回复
什么叫十六进制的字符串?
7.16 将
字符串
转为数字
16进制
数转为10进制数
//7.16
16进制
转为10进制 //
16进制
数
转化
为10进制,从后往前乘以16^0,16^1,以此类推,各数相加 //用字符形式存储 //将字符型转为
数字型
//次方用16的叠成 int tran(char a[]) { int i = 0; int n=0;//转为数字,要用n存储这个数! while (a[i]) { if (a[i] >= 'A' && a[i] <= 'Z') n = n * 16 + a[i] - 'A' + 10; else.
将一个十进制数字
转化
为x进制/将x进制的
字符串
转换成10进制
public class JinZhiZhuanHuan { public static void main(String[] args) { // int res1 = toTen("1730f", 16); // System.out.println(res1); ten2X(2349, 8); } /** * 将一个十进制数字
转化
为x进制 * @param
matlab二进制转符号,MATLAB二进制数据类型相关操作(数字,字符,
字符串
及转换)...
Matlab逻辑运算&:逻辑与A&B返回值:当A、B中元素均为非零元素是,返回1,否则,为0,还可表示成and(a,b);|:逻辑或A|B。还可以表示成or(A,B).~ : 逻辑非 ~A。还可以表示成not(A).xor:逻辑异或xor(A,B).//////////////////////////////////////////unituint8([])uint16([])u...
字符串
中
数字型
字符转换成实际的数值
字符串
中
数字型
字符转换成实际的数值 这是一篇bug笔记.... 如果你正在读C4的源码,遇到和我同样的问题,希望能互助交流~ 是节选自C4的一小段代码.这段代码把p指向的
字符串
中的数字字符读取出来,转换为整形 比方说"0x100"会被
转化
为 int 类型数据 number = 256; 值
java MD5算法返回
数字型
字串
转载自品略图书馆http://www.pinlue.com/article/2020/05/2223/3910587589711.html 常有人问及MD5算法为何有些程序片断返回完全
数字型
结果而有些返回数字与字母的混合字串。 其实两种返回结果只是因为加密结果的不同显示形式,Blog中已经有.Net的实现,在此附加JAVA实现,供参考。 JAVA的标准类库理论上功能也很强大,但由于虚拟机/运行时的实现太多,加之版本差异,有些代码在不同环境下运行会出现奇怪的异常结果,尤其以涉及字符集的操作为甚。..
C++ 语言
65,211
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章