... Кто-то сказал ранее
и f в двоичном виде будет 11001100
Все, что я могу сказать, это вау ... нет, F в двоичном коде равно 1111 (15 десятичных)
Если я правильно понял ваш вопрос, вы хотите получить двоичное значение для любого символа ascii ... т.е.
Когда я смотрю на strIn [0], я бы хотел
чтобы получить 1111 вместо 'F'.
Итак ... вот небольшая функция, которая сделает это ...
int ConvertHexAsciiValue(char c)
{
if(isalpha(c))
{
char r = tolower(c);
if(r > 'f')
{
// - Handle error here - character is not base 16
return 0;
}
int nIndex = (int)('a' - r);
nIndex = -nIndex;
nIndex += 10;
return nIndex;
}
else if(isdigit(c))
{
int nIndex = c - '0';
return nIndex;
}
// Handle error here - character is not A-F or 0-9
return 0;
}
Если я вас не правильно понял, вы должны знать, что вы не можете прочитать строку "1111" для символа strIn [0]. Однако вы можете получить двоичное значение для каждого символа (интерпретируемое как шестнадцатеричное значение), используя предоставленную мной функцию ...
for(int x = 0; x < strlen(strIn); x++)
{
int val = ConvertHexAsciiValue(strIn[x]);
printf("Value %d: %d\n", x, val);
}
Если бы strIn был установлен на «f2», этот код выдает следующий вывод на консоль
Value 0: 15
Value 1: 2