我试图将每个字母的ASCII值转换为二进制,但我不确定如何获取小数值并转换它们。这里的代码用ASCII值打印出一个单词到右边
#include <stdio.h>
#include <string.h>
int main (void) {
char c[20];
printf("Enter a word: ");
scanf("%s",&c);
int i;
char *str = c;
int length = strlen(str);
for (i = 0; i < length; i++) {
printf("%c = %d \n", str[i] , str[i]);
}
return 0;
}
示例输出:
Enter a word: Program
P = 80
r = 114
o = 111
g = 103
r = 114
a = 97
m = 109
答案 0 :(得分:1)
尝试这个... Pgm用于二元打印..
#include <stdio.h>
#include <string.h>
int main (void) {
char c[20];
printf("Enter a word: ");
scanf("%s",c);//here no need &
int j;
int i;
char *str = c;
int length = strlen(str);
for (i = 0; i < length; i++)
{
for(j=7;j>=0;j--)//for binary print; for char j=7, for int j=31
{
if((str[i]>>j&1)==1)
printf("1");
else
printf("0");
}
printf("\n%c = %d \n", str[i] , str[i]);
}
return 0;
}