Here is a simple solution to your question. I took each character, checked against its hexadecimal character and returned as a combination.
char CardNumber[8]CardNumber[] = "B763AB23";
byte CardNumberByte[4];
void setup() {
Serial.begin(9600);
}
void loop() {
for(char i = 0; i < 4; i++)
{
byte extract;
char a = CardNumber[2*i];
char b = CardNumber[2*i + 1];
extract = convertCharToHex(a)<<4 | convertCharToHex(b);
CardNumberByte[i] = extract;
Serial.println(CardNumberByte[i], HEX);
}
while(1);
}
char convertCharToHex(char ch)
{
char returnType;
switch(ch)
{
case '0':
returnType = 0;
break;
case '1' :
returnType = 1;
break;
case '2':
returnType = 2;
break;
case '3':
returnType = 3;
break;
case '4' :
returnType = 4;
break;
case '5':
returnType = 5;
break;
case '6':
returnType = 6;
break;
case '7':
returnType = 7;
break;
case '8':
returnType = 8;
break;
case '9':
returnType = 9;
break;
case 'A':
returnType = 10;
break;
case 'B':
returnType = 11;
break;
case 'C':
returnType = 12;
break;
case 'D':
returnType = 13;
break;
case 'E':
returnType = 14;
break;
case 'F' :
returnType = 15;
break;
default:
returnType = 0;
break;
}
return returnType;
}