gpt4 book ai didi

c - 十六进制到ascii字符串转换

转载 作者:太空狗 更新时间:2023-10-29 16:40:50 25 4
gpt4 key购买 nike

我有一个十六进制字符串,想在 C 中将它转换为 ascii 字符串。我该如何完成这个??

最佳答案

你需要同时取2个(十六进制)字符...然后计算int值然后像这样进行 char 转换......

char d = (char)intValue;

对十六进制字符串中的每 2 个字符执行此操作

如果字符串字符仅为 0-9A-F,则此方法有效:

#include <stdio.h>
#include <string.h>

int hex_to_int(char c){
int first = c / 16 - 3;
int second = c % 16;
int result = first*10 + second;
if(result > 9) result--;
return result;
}

int hex_to_ascii(char c, char d){
int high = hex_to_int(c) * 16;
int low = hex_to_int(d);
return high+low;
}

int main(){
const char* st = "48656C6C6F3B";
int length = strlen(st);
int i;
char buf = 0;
for(i = 0; i < length; i++){
if(i % 2 != 0){
printf("%c", hex_to_ascii(buf, st[i]));
}else{
buf = st[i];
}
}
}

关于c - 十六进制到ascii字符串转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5403103/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com