将“BAO WEN ZHEN”依据ASCII转化为二进制?

如题所述

下面是完整程序。函数 void fun(int x ) 用于转换1个整型值到2进制并输出。
主函数, 对字符串中每个字符做循环,用它的ASCII码数值作参数,调用 fun()输出。
程序输出 未考虑 按字节给 2进制值 头部添补0 (凑足8位),你可自行改进。
#include <stdio.h>
static char s[60];
void fun(int x )
{
static int i=0;
if (x>1) fun(x/2); printf("%d", x%2);
s[i++] = x%2+'0';
}
int main()
{
char ss[]="BAO WEN ZHEN";
int i;
for (i=0;i<strlen(ss);i++){
fun((int)ss[i]); printf(" ");
}
return 0;
}
输出: 1000010 1000001 1001111 100000 1010111 1000101....
温馨提示:答案为网友推荐,仅供参考
相似回答