想要输入char* a=0x88888888;等字符串,然后通过strtol(a,&ptr,16)转化为16进制,因为strtol最大只能转化为long int(0x7ffffffff)类型的数据。字符串的数据转化为16进制的话明显已经超限了。请问大家有没有好的解决办法。
有更大的库函数 stroul c库里面集成的有
////1. 数字转字符串
unsigned long long bigdata= 0x8888888888888888;
char buffer[30]={0};
sprintf_s(buffer,30, "%llu", bigdata);
string info= string(buffer);
////2. 字符串转数字
unsigned long long bigdata= 0;
string SourceData="9838263505978427528";
sscanf_s(SourceData.c_str(),"%llu",&bigdata);
不行你就按位将字符串截断,然后分别转换好存放到数组里,类似大数计算的方法
手写呗,实现又不复杂