C语言如何输入单个字符输出为十进制,八进制,十六进制
时间: 2024-02-22 07:57:36 浏览: 33
您可以使用C语言中的printf()函数来输出单个字符的十进制、八进制、十六进制表示。
下面是一个例子:
```c
#include <stdio.h>
int main() {
char c = 'A';
printf("Character '%c' in decimal: %d\n", c, c);
printf("Character '%c' in octal: %o\n", c, c);
printf("Character '%c' in hexadecimal: %x\n", c, c);
return 0;
}
```
输出结果如下:
```
Character 'A' in decimal: 65
Character 'A' in octal: 101
Character 'A' in hexadecimal: 41
```
其中%d表示十进制,%o表示八进制,%x表示十六进制。注意,输出的字符必须使用单引号括起来,如'A'。
相关问题
C语言输入十六进制输出十进制
可以使用C语言中的`scanf`函数读入十六进制数,然后使用`printf`函数输出十进制数。具体代码如下:
```c
#include <stdio.h>
int main() {
int hex_num;
printf("请输入一个十六进制数:");
scanf("%x", &hex_num);
printf("转换成十进制为:%d\n", hex_num);
return 0;
}
```
在`scanf`函数中,使用`%x`格式化字符读入十六进制数,并将其存储到`hex_num`变量中。然后在`printf`函数中,使用`%d`格式化字符输出十进制数。
C语言字符串十进制转十六进制
以下是两种C语言字符串十进制转十六进制的方法:
方法一:
思路:用一个字符串数组存储0-F一共16个十六进制数。十进制数除16取余,余数对应字符串数组下标,用一个整型数组存储余数对应的字符串数组下标里的十六进制数。最后逆序输出整型数组里的元素。
```c
#include <stdio.h>
int main() {
char a[40]="0123456789ABCDEF";//用一个数组存储十六进制数
char b[100];//储存输入的十进制数对应的十六进制数
int n;
int cnt;//计数
scanf("%d",&n);//输入要转换的十进制数
if(n==0) printf("0");
while(n!=0) {
b[++cnt]=a[n%16];//这里cnt从1开始
n=n/16;
}
for(int i=cnt;i>0;i--)/*上面cnt从1开始所以i>0,不用输出b[0]。逆序输出*/
printf("%c",b[i]);
return 0;
}
```
方法二:
思路:先使用`strtol`函数将字符串转成十进制数,再通过`sprintf`函数将十进制数按十六进制字符串形式输出到字符数组保存。
```c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(void) {
char str1[] = "87632394";
char str2[100] = {0};
char* endptr;
long data = 0;
data = strtol(str1,&endptr,10);
printf("data=%ld\r\n",data);
sprintf(str2,"%X",data);
printf("str2=%s\r\n",str2);
return 0;
}
```