ps[i] = (01 & n) + '0';这部分是什么意思?



```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'