質問: asciiコードへの変換方法 前の質問と似たような質問ですが困っております。 ポインタに文字列を格納し char *a="a"; char *b="ace"; このポインタの中身をasciiコードで表示させるプログラム ポインタaの中身aはasciiコード2進数で********です。 ポインタbの中身aceはasciiコード2進数で************************です。 という感じのプログラムを作りたいのですが、8進数表示はここで教えてもらい理解できましたが2進数への変換方法がわからりません。 もしよろしかったら具体例等のプログラムのご教授願います。
回答: 1文字のasciiコードを2進数文字列に変換するには、一番上のビットから順番に0か1かを調べて'0'か'1'を並べていけばできます。 例えば、char buf[9];で9文字分のメモリを確保しておいて、下の関数で c2b(buf,'a'); とやれば、'a'の2進数表記をbufに格納できます。printf("%s",buf)で表示すればよいでしょう。 void c2b(char s[], char c) { int i; for (i=0; i<8; i++) { s[i]=((0x80>>i)&c)?'1':'0'; } s[i]='\0'; }