转换二进制

今天面试某司,竟然把数字转换成2进制表示的字符串写错了。。。

写个正确的版本提醒一下。。。


typedef stack<char> CharStack;

void binary(unsigned int num, char *out)
{
  CharStack tmpStack;
  while(num)
  {
    tmpStack.push((num % 2) + '0');
    num /= 2;
  }

  int i = 0;
  while(!tmpStack.empty())
  {
    out[i++] = tmpStack.top();
    tmpStack.pop();
  }
  out[i] = 0;
}

二面应该是没有了。。。

加入对话

2条评论

留下评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据