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