首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >unsigned long long to string转换

unsigned long long to string转换
EN

Stack Overflow用户
提问于 2010-10-18 18:59:10
回答 3查看 14.1K关注 0票数 3

我尝试将无符号的long long转换为字符串,如下所示

代码语言:javascript
复制
unsigned long long Data = 12;
char Str[20];

sprintf(Str, "%lld",Data);

当我想看,但我总是看到00

代码语言:javascript
复制
Str[0],Str[1]....;

怎么了!

EN

回答 3

Stack Overflow用户

发布于 2010-10-18 19:02:42

在大多数情况下,%llu应该可以做到这一点。但在某些视窗平台上,你可能不得不使用%I64u

票数 4
EN

Stack Overflow用户

发布于 2010-10-18 19:02:54

%lld用于签名的long long,请改用%llu

票数 3
EN

Stack Overflow用户

发布于 2013-03-03 10:59:19

%llu应该可以按照添加到标准中的方式工作。但是,您可以使用安全版本的snprintf,或者考虑编写自己的函数,而不是snprintf。这里有一个你可能会感兴趣的。

代码语言:javascript
复制
char *ulltostr(uint64 value, char *ptr, int base)
{
  uint64 t = 0, res = 0;
  uint64 tmp = value;
  int count = 0;

  if (NULL == ptr)
  {
    return NULL;
  }

  if (tmp == 0)
  {
    count++;
  }

  while(tmp > 0)
  {
    tmp = tmp/base;
    count++;
  }

  ptr += count;

  *ptr = '\0';

  do
  {
    res = value - base * (t = value / base);
    if (res < 10)
    {
      * --ptr = '0' + res;
    }
    else if ((res >= 10) && (res < 16))
    {
        * -- ptr = 'A' - 10 + res;
    }
  } while ((value = t) != 0);

  return(ptr);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3958449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档