如何在C中将这些ASCII值转换为二进制

时间:2014-09-29 04:19:38

标签: c

我试图将每个字母的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

1 个答案:

答案 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;
}