我正在尝试将每个字母的 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
最佳答案
试试这个...用于二进制打印的 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;
}
关于c - 如何在 C 中将这些 ASCII 值转换为二进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26092502/