zoukankan      html  css  js  c++  java
  • 查找字符串数组中16进制数,并转换【原创】

    查找字符串数组中16进制数,并转换


    #include <stdio.h> #include <stdlib.h> #include <string.h> void string_to_hex(unsigned char* input, int input_len, unsigned char* output, int output_len) { unsigned char tmp; int i; if (input_len > output_len*2) return; for (i = 0; i < input_len; i += 2){ tmp = input[i]; if (tmp > '9'){ tmp = (unsigned char)toupper((int)tmp) - 'A' + 0x0A; } else { tmp &= 0x0F; } output[i/2] = (tmp << 4); tmp = input[i+1]; if (tmp > '9'){ tmp = (unsigned char)toupper((int)tmp) - 'A' + 0x0A; } else { tmp &= 0x0F; } output[i/2] |= tmp; } } #define GTP_CONFIG_MAX_LENGTH 240 int main(void) { char *fw_image = "0xfd,120x03fg 0x44 ,,0x56dff g0x23,,a0x34"; int size = 0; int i = 0; char temp_data[GTP_CONFIG_MAX_LENGTH] = { 0 }; char *endp = NULL; int find_data = 0; int j = 0; memset(temp_data, 0, strlen(temp_data)); j = 0; size = strlen(fw_image); printf("size=%d ", size); for (i = 0; i < size; i++) { if (fw_image[i] == '0' && find_data == 0) { find_data = 1; printf("[%d]%c find_data == 0 no ", i, fw_image[i]); continue; } if ((fw_image[i] == 'x' || fw_image[i] == 'X') && find_data == 1) { find_data = 2; printf("[%d]%c find_data == 1 no ", i, fw_image[i]); } else if (find_data == 2) { printf("[%d]%c find_data == 2 ", i, fw_image[i]); printf("[%d]%c find_data == 2 ", i, fw_image[i-2]); //temp_data[j] = strtoul(&fw_image[i-2], NULL, 16); string_to_hex(&fw_image[i], 2, &temp_data[j], 2); printf("temp_data[%d]=0x%02x yes ", j, temp_data[j]); find_data = 0; j++; } else { find_data = 0; printf("[%d]%c find_data == 0 no ", i, fw_image[i]); } } printf("j=%d ", j); for (i = 0; i < j; i++) { printf("[%d]%02x ", i, temp_data[i] & 0xff); if (i % 10 == 9) printf(" "); } #if 0 // string_to_hex(buf, 5, tmp, 5); tmp[0] = strtoul(buf, &endp, 16); tmp[1] = strtoul(&buf[5], &endp, 16); tmp[2] = strtoul(&buf[11], &endp, 16); for (i=0; i<5; i++) printf("tmp[%d]=%02x ", i, tmp[i]); #endif printf(" "); return 0; }
  • 相关阅读:
    JS通过组装key值访问json对象中的值
    js属性对象的hasOwnProperty方法
    ES6 去掉已经 new Date().format 方法
    Ajax不能接受php return值的原因
    CentOS最常用命令及快捷键整理
    js中for循环中需要调用异步方法,怎么确保执行的顺序?
    MYSQL 更新字段,向字段追加字符串
    java-学习2
    java-学习1
    JS----贪吃蛇游戏
  • 原文地址:https://www.cnblogs.com/sky-heaven/p/7411187.html
Copyright © 2011-2022 走看看