C Primer Plus(第六版)15.9 编程练习 第2题

#include
#include

#define LEN 32

//15.9-2 10111101 111000111

int get_int(char * str);
char * itobs(int n, char * ps);

int main( int argc, char *argv[] )  
{
    int num,num1;
    char string[LEN]; 
    if( argc != 3 )
    {
        printf("erro arguments supplied.\n");
    }
    printf("argv[1]字符串     =%s\n",argv[1]);
    printf("argv[2]字符串     =%s\n",argv[2]);
    num=get_int(argv[1]);
    printf("argv[1]十进制     =%d\n",num);
    num1=get_int(argv[2]);
    printf("argv[2]十进制     =%d\n",num1);
    printf("原argv[1]         =%s\n",itobs(num, string));
    printf("原argv[2]         =%s\n",itobs(num1, string));    
    printf("反argv[1]         =%s\n",itobs(~num, string));
    printf("反argv[2]         =%s\n",itobs(~num1, string));
    printf("argv[1] 且 argv[2]=%s\n",itobs(num&num1, string));
    printf("argv[1] 或 argv[2]=%s\n",itobs(num|num1, string));
    printf("argv[1]异或argv[2]=%s\n",itobs(num^num1, string));
}

int get_int(char * str)
{
    int val = 0;
    int i=0;
    while (*str != '\0')
    {
        val = 2 * val + (*str++ - '0');
        i++;
    }
    return val;
}

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;
}
 

你可能感兴趣的:(C,Primer,Plus(第六版),c语言,开发语言)