How do I convert a binary string to hex using C?

前端 未结 4 1179
暖寄归人
暖寄归人 2021-01-21 07:53

How do I convert an 8-bit binary string (e.g. \"10010011\") to hexadecimal using C?

4条回答
  •  梦毁少年i
    2021-01-21 08:36

    void binaryToHex(const char *inStr, char *outStr) {
        // outStr must be at least strlen(inStr)/4 + 1 bytes.
        static char hex[] = "0123456789ABCDEF";
        int len = strlen(inStr) / 4;
        int i = strlen(inStr) % 4;
        char current = 0;
        if(i) { // handle not multiple of 4
            while(i--) {
                current = (current << 1) + (*inStr - '0');
                inStr++;
            }
            *outStr = hex[current];
            ++outStr;
        }
        while(len--) {
            current = 0;
            for(i = 0; i < 4; ++i) {
                current = (current << 1) + (*inStr - '0');
                inStr++;
            }
            *outStr = hex[current];
            ++outStr;
        }
        *outStr = 0; // null byte
    }
    

提交回复
热议问题