C语言中如何将二进制转换成相应的数

请问这个要怎么解决?应该是 输入整数,返回相应的16 个字符。在“PUT YOUR CODE HERE”写内容,前面内容不要改动,(好像是在于char和int的转化,要按照原来的0/1把int16_t对应的位设置成0/1,在计算机中就是那一串二进制数了,print出来直接是所表示的十进制数,),蟹蟹大lao。题目如下

img

img

#include <stdio.h>
#include <stdint.h>
#include <string.h>
#include <assert.h>
#define N_BITS 16
int16_t sixteen_in(char *bits);
int main(int argc, char *argv[]) {
    for (int arg = 1; arg < argc; arg++) {
        printf("%d\n", sixteen_in(argv[arg]));
    }
    return 0;
}
//
// given a string of binary digits ('1' and '0')
// return the corresponding signed 16 bit integer
//
int16_t sixteen_in(char *bits) {
    // PUT YOUR CODE HERE
    return 0;
}
 

连续相乘就可以了。根据是否为1,然后不断乘以10,和整数转二进制是反向的