如何将字符数组转换为二进制数组?

时间:2014-10-22 22:15:58

标签: c arrays

我有一个程序,它将输入ppm图像,读入标题和剩余像素值,隔离像素值中的最后一个值,并尝试将该二进制数字串转换为字母。它没有完成,但我将包括我到目前为止所拥有的内容。我的问题是如何从第一个for循环之后完成的数组转到将该数组转换为二进制数组以便在代码末尾使用公式。非常感谢任何帮助,如果我需要进一步澄清,请告诉我。

#include <stdio.h>
#include <math.h>

int main(void){
    //to read in the header of a ppm image
    char header[5];
    scanf("%s",header);
    int width, height, depth;
    scanf("%d %d %d\n", &width, &height, &depth);

    //isolating the last digit of the ppm values
    unsigned char rgb[width*height*3];
    int count = 0;
    for(count = 0; count < (width*height*3); count++){
        scanf("%c", &rgb[count]);
        rgb[count] = (long)rgb % 10;
    }

    //formula to convert a binary array to a letter
    int bin[9];
    int result = 0;
    int i = 0;
    char letter[1];
    for(i = 8; i >= 0; --i){
        result += (bin[i] * (int) pow(2, 8-i));
        letter[0] = result;
    }
    printf("%d\n", result);
    printf("%s\n", letter);


}

0 个答案:

没有答案