Conversion of Char to Binary in C

前端 未结 3 774
梦毁少年i
梦毁少年i 2020-11-28 10:37

I am trying to convert a character to its binary representation (so character --> ascii hex --> binary).

I know to do that I need to shift and AND. Howe

3条回答
  •  醉梦人生
    2020-11-28 11:33

    Your code is very vague and not understandable, but I can provide you with an alternative.

    First of all, if you want temp to go through the whole string, you can do something like this:

    char *temp;
    for (temp = your_string; *temp; ++temp)
        /* do something with *temp */
    

    The term *temp as the for condition simply checks whether you have reached the end of the string or not. If you have, *temp will be '\0' (NUL) and the for ends.

    Now, inside the for, you want to find the bits that compose *temp. Let's say we print the bits:

    for (as above)
    {
        int bit_index;
        for (bit_index = 7; bit_index >= 0; --bit_index)
        {
            int bit = *temp >> bit_index & 1;
            printf("%d", bit);
        }
        printf("\n");
    }
    

    To make it a bit more generic, that is to convert any type to bits, you can change the bit_index = 7 to bit_index = sizeof(*temp)*8-1

提交回复
热议问题