二进制转十六进制c语言
时间: 2023-09-16 07:14:52 浏览: 242
base64CodeAndDecodeprogram,c语言二转16进制源码,c语言项目
可以使用以下代码将二进制字符串转换为十六进制字符串:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* bin_to_hex(char *bin_str) {
int len = strlen(bin_str);
int i, j, k, decimal_num, remainder;
char *hex_str = malloc(len / 4 + 1);
char hex_digits[] = "0123456789ABCDEF";
for (i = 0, j = 0; i < len; i += 4, j++) {
decimal_num = 0;
for (k = i; k < i + 4; k++) {
decimal_num = decimal_num * 2 + (bin_str[k] - '0');
}
hex_str[j] = hex_digits[decimal_num];
}
hex_str[j] = '\0';
return hex_str;
}
int main() {
char bin_str[] = "110101110001011100110110";
char *hex_str = bin_to_hex(bin_str);
printf("Binary string: %s\n", bin_str);
printf("Hexadecimal string: %s\n", hex_str);
free(hex_str);
return 0;
}
```
输出结果:
```
Binary string: 110101110001011100110110
Hexadecimal string: D71B9B
```
阅读全文