二进制转换为十六进制C语言
时间: 2023-06-14 13:05:23 浏览: 143
以下是将二进制数转换为十六进制数的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* binaryToHex(char* binary) {
int len = strlen(binary);
int i, j, k, dec = 0;
char hex[16] = {0};
char* hexStr = (char*)malloc(sizeof(char) * 8);
// 将二进制转换为十进制
for (i = len - 1, j = 0, k = 0; i >= 0; i--, j++) {
if (binary[i] == '1') {
dec += (1 << j);
}
if (j == 3 || i == 0) {
if (dec < 10) {
hex[k++] = dec + '0';
} else {
hex[k++] = dec - 10 + 'A';
}
dec = 0;
j = -1;
}
}
// 反转字符串
for (i = 0; i < k; i++) {
hexStr[i] = hex[k - i - 1];
}
hexStr[i] = '\0';
return hexStr;
}
int main() {
char binary[] = "1101010110101001";
char* hexStr = binaryToHex(binary);
printf("%s\n", hexStr);
free(hexStr);
return 0;
}
```
该代码将二进制字符串转换为十六进制字符串,并输出转换结果。该算法的基本思路是将二进制字符串每四位一组,转换为一个十六进制字符。
阅读全文