itoa 不支持64位整数的转换,可以把大整数拆为两段来包装 itoa。

ull_to_string:将 unsigned long long 转换为字符串


                string  Utils::ull_to_string(unsigned long long _num)
                {
                	const unsigned long long  _div = 10000000;
                
                	unsigned long long    upper_part = _num / _div;
                	unsigned long long  lower_part = _num - upper_part * _div;
                
                	char buf[100];
                
                	memset(buf, 0, sizeof (char)* 100);
                
                	itoa((int)upper_part, buf, 10);
                	string ret = buf;
                
                	memset(buf, 0, sizeof (char)* 100);
                	itoa((int)lower_part, buf, 10);
                	ret.append(buf);
                
                
                	while (ret[0] == '0')
                	{
                		ret = ret.substr(1, -1);
                
                	}
                
                	return ret;
                
                }

string_to_ull:将字符串转换为 unsigned long long

unsigned long long  Utils::string_to_ull(const string num)
                {
                	unsigned long long _file_size = 0;
                	unsigned long long des = 1;
                	for (int i = num.size() - 1;
                		i >= 0; i--, des *= 10)
                	{
                		_file_size += des*(num[i] - '0');
                	}
                	return _file_size;
                }