我希望将二进制的整数表示转换为字符串。我不允许使用按位操作。 当我将十进制整数值转换为整数二进制表示时,我可以将数字放在字符串中并反转,但我正在寻找更优雅的方式。
有什么想法吗?
答案 0 :(得分:3)
如果您不能使用按位运算符,只需除以2并检查提醒,如果使用固定大小(即32),则不需要反转字符串,如:
/* Only for positive numbers */
char bin[] = "00000000000000000000000000000000";
int count = 31, num = 25;
while (num) {
if (num % 2) bin[count] = '1';
num /= 2;
count--;
}
printf("%s\n", bin);