[英]String to ASCII Hex splitting in C
我在 Labwindows CVI 8.5 中使用 C。
我將浮點數轉換為 ASCII Hex(這部分已經完成):
#include <stdio.h>
#include <string.h>
int main () {
char K_char[20], K_ASCII[20];
int a = 30; //30 degree Celsius
int i, len ;
float k = a + 273.15; //Temperature Celsius to Kelvin
sprintf(K_char, "%.2f", k); //Temperature K convert to char array
len = strlen(K_char);
for(i = 0; i<len; i++){
sprintf(K_ASCII+i*2, "%02X", K_char[i]); //char array convert to ASCII Hex
}
printf("%s\n", K_ASCII);
return(0);
}
上面代碼的結果是 3330332E3135。
現在我想像這樣從上面的字符串中提取每個字節:
a[0] = 0x33
a[1] = 0x30
a[2] = 0x33
a[3] = 0x2E
a[4] = 0x33
a[5] = 0x35
有人可以給我一些建議嗎? 謝謝你的幫助。
看來你把它復雜化了。 您已經在K_char
擁有這些值。 喜歡
K_char[0] = 0x33
K_char[1] = 0x30
K_char[2] = 0x33
K_char[3] = 0x2E
K_char[4] = 0x31
K_char[5] = 0x35
'0'
為'9'
或'A'
到'F'
為等價的數字。然后像這樣循環你的 ASCII 格式數組:
size_t length = strlen(K_ASCII); uint8_t hex [length/2+1]; for(size_t i=0; i<length/2; i++) { hex[i] = to_hex(K_ASCII[2*i]); hex[i] <<= 4; hex[i] += to_hex(K_ASCII[2*i+1]); }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.