一个16进制的问题
已有
- C/C++ code
char a[]="f"char b[]="b"现在想得到一个 c=0xfb
请问各位大神该如何实现 谢谢
[解决办法]
可以这样
- C/C++ code
#include<stdio.h>#include<stdlib.h>int main(){ char *p = "0xff"; int n; sscanf(p,"%x",&n); printf("%x\n",n);}
[解决办法]
- C/C++ code
char e[]="fffafbfc";unsigned char Buffer1,Buffer2,Buffer3,Buffer4;sscanf(e,"%2x%2x%2x%2x",&Buffer1,&Buffer2,&Buffer3,&Buffer4);
[解决办法]
[解决办法]
char a[]="f";
char b[]="b";
int c ;
c = atoi(a)*16 + atoi(b);
printf("c = %x",c);
[解决办法]
- C/C++ code
#include<stdio.h>#include<stdlib.h>void get(unsigned char *src, unsigned char Buffer[]){ unsigned char uch; while(*src && *(src + 1)) { if ('A' <= *src && *src <= 'F' || 'a' <= *src && *src <= 'f') uch = ((*src++ & 0x0f) + 9)<<4; else if('0' <= *src && *src <= '9') uch = (*src++ & 0x0f)<<4; if ('A' <= *src && *src <= 'F' || 'a' <= *src && *src <= 'f') uch |= ((*src++ & 0x0f) + 9); else if('0' <= *src && *src <= '9') uch |= (*src++ & 0x0f); *Buffer++ = uch; }}int main(){ #define N 8 unsigned char Buffer[N]; int i; get("fffafbfcf33a5678", Buffer); for (i = 0; i < N; i++) printf("%x\n", Buffer[i]); system("pause"); return 0;}