c语言输出16进制
时间: 2023-07-09 12:08:23 浏览: 181
在 C 语言中,要输出一个数的 16 进制表示,可以使用 `%x` 格式化字符。例如:
```c
int num = 255;
printf("0x%x\n", num); // 输出 0xff
```
其中 `%x` 表示输出整数的 16 进制表示,输出的字母均为小写形式。如果要输出大写字母,可以使用 `%X` 格式化字符。例如:
```c
int num = 255;
printf("0x%X\n", num); // 输出 0xFF
```
相关问题
C语言将16进制字符串转为16进制数组
可以使用sscanf()函数将16进制字符串转换为16进制数。然后将16进制数存储在数组中。下面是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char hex_string[] = "0a1b2c3d";
int hex_array[4];
int i;
for(i = 0; i < 4; i++)
{
sscanf(hex_string + i*2, "%2x", &hex_array[i]);
}
for(i = 0; i < 4; i++)
{
printf("%02x ", hex_array[i]);
}
return 0;
}
```
输出将是:0a 1b 2c 3d。
在这个例子中,我们首先定义一个16进制字符串“0a1b2c3d”和一个整数数组hex_array。然后在循环中,我们使用sscanf()函数将每个16进制数提取到hex_array中。最后,我们遍历hex_array并使用printf()函数打印每个16进制数。
C语言中16进制转10进制和10进制转16进制的代码
1. 16进制转10进制
```c
#include <stdio.h>
int hexToDec(char hex[])
{
int len = 0, dec = 0;
while (hex[len] != '\0') {
len++;
}
for (int i = 0; i < len; i++) {
int num = 0;
if (hex[i] >= '0' && hex[i] <= '9') {
num = hex[i] - '0';
} else if (hex[i] >= 'A' && hex[i] <= 'F') {
num = hex[i] - 'A' + 10;
} else if (hex[i] >= 'a' && hex[i] <= 'f') {
num = hex[i] - 'a' + 10;
}
dec = dec * 16 + num;
}
return dec;
}
int main()
{
char hex[100];
printf("请输入16进制数:");
scanf("%s", hex);
printf("16进制数 %s 转换成 10进制数为:%d\n", hex, hexToDec(hex));
return 0;
}
```
2. 10进制转16进制
```c
#include <stdio.h>
void decToHex(int dec)
{
char hex[100];
int i = 0;
while (dec > 0) {
int num = dec % 16;
if (num < 10) {
hex[i] = num + '0';
} else {
hex[i] = num - 10 + 'A';
}
dec /= 16;
i++;
}
printf("16进制数为:");
for (int j = i - 1; j >= 0; j--) {
printf("%c", hex[j]);
}
printf("\n");
}
int main()
{
int dec;
printf("请输入10进制数:");
scanf("%d", &dec);
decToHex(dec);
return 0;
}
```
以上是C语言中16进制转10进制和10进制转16进制的代码,其中16进制数需要在程序中输入或输出。
阅读全文