11

私はcでバイナリ値からcharに変換する方法に困惑しています。

たとえば、01010110があり、そこから対応する文字「V」を印刷したいとします。どうすればよいですか?

助けてくれてありがとう!

4

3 に答える 3

17
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    char *data = "01010110";
    char c = strtol(data, 0, 2);
    printf("%s = %c = %d = 0x%.2X\n", data, c, c, c);
    return(0);
}

出力:

01010110 = V = 86 = 0x56

参考文献:

于 2012-05-30T22:38:53.713 に答える
6

strtol()文字列の数値を解析するために使用できます。最後の引数 (この場合は 2) は、変換の基数です。

char c = strtol("01010110", (char **)NULL, 2);

この関数およびその他の数値解析関数の詳細については、こちら を参照してください。

于 2012-05-30T22:42:44.063 に答える
-2

少し違うことをしました:

バイナリから int を数学的に計算し、単に int を char にキャストしました。

int i;
char c = (char)i;
于 2012-05-30T23:09:47.120 に答える