今天面试某司,竟然把数字转换成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;
}
二面应该是没有了。。。
虽然我 C 是水货,但是我印象里记得这种进制转换不应该用字符串,而是位操作~
要求结果是字符串输出