一个16进制的有关问题
一个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; }