Di certo dati di quel genere non li puoi mettere in una variabile numerica, sono decisamente troppo grandi. Per copiarli in generale ad una qualche locazione di memoria puoi usare una roba del genere (adattato da questo mio codice):
codice://Convert a hexadecimal string to its corresponding byte sequence; returns the number of bytes written int HexToByte(const char * HexString, void * Out, size_t MaxOut) { unsigned char * castedOut=(unsigned char *)Out; size_t hslength=strlen(HexString); //Length check if(hslength>MaxOut*2) return -1; if(hslength%2!=0) return -2; //Convert the string const char * readPtr=HexString.c_str(); for(unsigned char * writePtr=castedOut; writePtr<castedOut+hslength/2; writePtr++,readPtr+=2) { int ret=getByte(readPtr); if(ret<0) return -3; *writePtr=ret; } return hslength/2; } //Returns a byte from a pair of hexadecimal digits int getByte(const char * str) { unsigned char ret=0; char ch; for(int i=0;i<2;i++) { ch=toupper(str[i]); if(ch>='0' && ch<='9') ret|=(ch-'0')<<((1-i)<<2); else if(ch>='A' && ch<='F') ret|=(ch-'A'+10)<<((1-i)<<2); else return -1; } return ret; }