转换二进制

今天面试某司,竟然把数字转换成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;
}

二面应该是没有了。。。

Comments

《 “转换二进制” 》 有 2 条评论

  1. alswl 的头像

    虽然我 C 是水货,但是我印象里记得这种进制转换不应该用字符串,而是位操作~

    1. Sun Junwen 的头像

      要求结果是字符串输出

发表回复

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

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理