```c
char * itobs(int n, char * ps)
{
int i;
const static int size = CHAR_BIT * sizeof(int);
for (i = size - 1; i >= 0; i--, n >>= 1)
ps[i] = (01 & n) + '0';
ps[size] = '\0';
return ps;
}
```
01&n是位与的意思,就是看n的是不是奇数
+‘0’的意思是将数字转换为字符
那么这个函数的意思大概是把10进制转换为二进制字符串
ps数组是0和1组成的字符串,表示二进制数
n>>1的目的是将判断位移动到最后一位,然后通过 01&n判断其是0还是1,然后+'0'后变成字母'1'或'0'