我正在处理一些图像识别程序。我将所有数据读入char缓冲区。该图像包含十六进制数据,因此我逐字节地读取到我的缓冲区,稍后我将处理它们。
我的问题是:如何从包含读取十六进制数据的char(1字节)转换并获取数据并使其成为2个大小的char数组?
示例:8c - >读入字符包含-116。我似乎无法找到任何方法使其成为char array[0] ='8'
和array[1]='c'
if(buffer[4] < 10 && buffer[4] >= 0) {
buyut1[0] = '0';
buyut1[1] = buffer[4];
sprintf(offSet, "%s", buyut1);
}
else{
sprintf(offSet, "%x", buffer[4]);
}
if(buffer[5] < 10 && buffer[5] >= 0) {
buyut2[0] = '0';
buyut2[1] = buffer[5];
sprintf(offSet,"%s""%c""%x",offSet,'0',buffer[5]);
}
else{
sprintf(offSet,"%s%x",offSet,buffer[5]);
}
我认为我可以转换像6c这样的东西,它包含一个带符号形式的正数。或类似03的东西,以0开头。
但是8c例如有-116并且不能使用我的函数。
答案 0 :(得分:0)
向sprintf()
函数指定要输出两个字符的hexa值,并将输入buffer[4]
强制转换为unsigned char:
sprintf( offSet, "%02x", (unsigned char)buffer[4]);