0603测试代码及截图
代码:
utils.h
#ifndef _UTIL_H_
#define _UTIL_H_
int Hex2Char(int fromi, char *toc);
int Char2Hex(char fromc, int *toi);
int Bitstr2ByteArr(char *bs, char *ba);
int ByteArr2Bitstr(char *ba, char *bs);
int Int2ByteArr(int i, char *ba);
int ByteArr2Int(char *ba, int *i);
#endif
utils.c
#include <stdio.h>
#include <string.h>
#include "utils.h"
int Hex2Char(int fromi, char *toc) {
if (fromi >= 0 && fromi <= 9) {
*toc = fromi + '0';
} else if (fromi >= 10 && fromi <= 15) {
*toc = fromi + 'A' - 10;
} else {
return -1; // 错误值
}
return 0;
}
int Char2Hex(char fromc, int *toi) {
if (fromc >= '0' && fromc <= '9') {
*toi = fromc - '0';
} else if (fromc >= 'A' && fromc <= 'F') {
*toi = fromc - 'A' + 10;
} else if (fromc >= 'a' && fromc <= 'f') {
*toi = fromc - 'a' + 10;
} else {
return -1; // 错误值
}
return 0;
}
int ByteArr2Bitstr(char *ba, char *bs) {
int i, j, L, a;
L = strlen(ba);
for (j = 0; j < L; j++) {
Char2Hex(ba[j], &a);
for (i = 0; i < 4; i++) {
bs[4 * j + 3 - i] = a % 2 + '0';
a = a / 2;
}
}
bs[4 * L] = '\0';
return 0;
}
int Bitstr2ByteArr(char *bs, char *ba) {
int i, j, L, sum;
L = strlen(bs);
for (i = 0; i < L / 4; i++) {
sum = 0;
for (j = 0; j < 4; j++) {
sum = sum * 2 + (bs[4 * i + j] - '0');
}
Hex2Char(sum, &ba[i]);
}
ba[L / 4] = '\0';
return 0;
}
int Int2ByteArr(int i, char *ba) {
sprintf(ba, "%02X", i & 0xFF);
return 0;
}
int ByteArr2Int(char *ba, int *i) {
int high, low;
Char2Hex(ba[0], &high);
Char2Hex(ba[1], &low);
*i = (high << 4) | low;
return 0;
}
main.c
#include <stdio.h>
#include "utils.h"
int main() {
char ba[100];
char bs[100];
printf("输入字节数组 (例如1A3F):\n");
scanf("%s", ba);
ByteArr2Bitstr(ba, bs);
printf("位串:\n");
printf("%s\n", bs);
char baa[100];
char bss[100];
printf("输入位串 (例如0001101000111111):\n");
scanf("%s", bss);
Bitstr2ByteArr(bss, baa);
printf("字节数组:\n");
printf("%s\n", baa);
int num;
char byteArr[3]; // 两个字符加一个终止符
printf("输入一个整数 (0-255):\n");
scanf("%d", &num);
Int2ByteArr(num, byteArr);
printf("整数转换为字节数组:\n");
printf("%s\n", byteArr);
int convertedNum;
printf("输入一个字节数组 (例如1A):\n");
scanf("%s", byteArr);
ByteArr2Int(byteArr, &convertedNum);
printf("字节数组转换为整数:\n");
printf("%d\n", convertedNum);
return 0;
}
截图



浙公网安备 33010602011771号