读取用户从键盘输入的整数,将该整数和一个字符串地址传递给 itobs 函数。然后通过位运算计算出正确的 0 1组合,并将其放入字符串中。

itobs.cpp

#include <stdio.h>

char * itobs(int , char *);
void show_bstr(const char * str);

int main()
{
    char bin_str[8 * sizeof(int) + 1];
    
    int number;
    
    puts("Input integers and see them in binary: ");
    while (scanf("%d", &number) == 1)
    {
        itobs(number, bin_str);
        printf("%d is \n", number);
        //puts(bin_str);
        show_bstr(bin_str);
    }
    
    puts("Bye!");
    return 0;
}

char * itobs(int n, char * pb)
{
    int size = 8 * sizeof(int);
    int i = 0;
    
    pb[size] = '\0';
    for (i = size - 1; i >= 0; i --, n >>= 1)
        pb[i] = (n & 0x01) + '0';
    
    return pb;
}

/* 以 4 位为一组,显示二进制字符串 */ 
void show_bstr(const char * str)
{
    int i = 0;
    while (str[i])    //不是空字符 
    {
        putchar(str[i]);
        if(++ i % 4 == 0 && str[i])
            putchar(' ');
    }
}

标签: none

添加新评论