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;
}