Онлайн компилятор C

#include <stdio.h> unsigned int to_binary(int n){ if(n==0){ return 0; } return=(n%2)+10*to_binary(n/2); }
这段代码试图将一个整数转换为二进制表示,但返回的是看起来像二进制的十进制数。例如,输入5会返回101(实际是十进制的一百零一)。

代码中存在一个语法错误:第7行的 `return=` 是错误的,C语言中赋值运算符不能直接跟在return后面。应该写成 `return (n%2) + 10 * to_binary(n/2);`。

- 注意 `return=` 是语法错误,正确的写法是 `return 表达式;`,中间不能有等号。
- 另外,这个函数返回 `unsigned int`,但递归计算的结果可能超出整数范围,例如输入较大的数(如1024)时,结果会溢出。思考一下,用十进制数来模拟二进制表示是否合适?