#include <stdio.h>
#include <stdint.h>
#include <string.h>
// 将4个字节的数组转换为float
float bytesToFloat(uint8_t bytes[4]) {
float result;
memcpy(&result, bytes, sizeof(result));
return result;
}
int main() {
while(1){
uint8_t input[4];
printf("请输入4个字节的十六进制值(例如:A3 25 34 56),用空格分隔:\n");
if (scanf("%2x %2x %2x %2x", &input[0], &input[1], &input[2], &input[3]) != 4) {
printf("输入格式错误,请按示例输入。\n");
continue;
}
printf("%d,%d,%d,%d\n",input[0],input[1],input[2],input[3]);
char ABCD[5] = "ABCD";
for(uint8_t a=0;a<4;a++){
for(uint8_t b=0;b<4;b++){
if(b==a){
continue;
}
for(uint8_t c=0;c<4;c++){
if(c==a||c==b){
continue;
}
for(uint8_t d=0;d<4;d++){
if(d==a||d==b||d==c){
continue;
}
uint8_t bytes[4] = {input[a], input[b], input[c], input[d]};
float value = bytesToFloat(bytes);
printf("%c%c%c%c:%f\n",ABCD[a],ABCD[b],ABCD[c],ABCD[d],value);
}
}
}
}
}
}