将数字从文件转换为二进制表示法

时间:2018-10-16 20:33:59

标签: c binary

我有一个使用空格和星号将数字从0转换为255的程序。我想用它来将数字从data$bin<-as.factor(ifelse(data$internet<=2.3225,"one", ifelse(data$internet>2.3225 && data$internet<=4.425,"two", ifelse(data$internet>4.425 && data$internet<=6.5275,"three", ifelse(data$internet>6.5275,"four",NA))))) 文件转换为二进制表示法,如下所示:

 
.txt

我该怎么做?

这是我到目前为止获得的代码,但是没有任何输入:

./binary < binaryData.txt
 60:   ****
 66:  *    *
128: *
...

1 个答案:

答案 0 :(得分:0)

您将需要使用scanf()来获取数字作为输入,然后打印其二进制表示形式。继续扫描,直到scanf()返回EOF,这意味着您已经到达输入的末尾。

这就是您要寻找的东西:

#include <stdio.h>

int main(void) {
    int i;

    while (scanf("%d", &i) != EOF) {
        printf("%3d: ", i);
        printf(i & 128 ? "*" : " ");
        printf(i &  64 ? "*" : " ");
        printf(i &  32 ? "*" : " ");
        printf(i &  16 ? "*" : " ");
        printf(i &   8 ? "*" : " ");
        printf(i &   4 ? "*" : " ");
        printf(i &   2 ? "*" : " ");
        printf(i &   1 ? "*" : " ");
        printf("\n");
    }

    return 0;
}

编译后,从这样的shell中调用程序:

./program < data.txt

示例输入文件data.txt

234
2
221
24
89
22

输出:

234: *** * * 
  2:       * 
221: ** *** *
 24:    **   
 89:  * **  *
 22:    * **