Этот код будет работать на платежном устройстве (POS).Для этой цели я должен использовать устаревший C (а не C # или C ++).
Я пытаюсь подготовить простые данные программного обеспечения для чтения / записи карт Mifare.Ниже приведен мой справочный документ, и я пытаюсь добиться того, что описано на стр. 9, пояснения к блокам значений 8.6.2.1.http://www.nxp.com/documents/data_sheet/MF1S50YYX_V1.pdf
Я просто очень хорошо знаю основы C. Все мои поиски в Интернете провалились.Согласно документу:
1 - существует целочисленная переменная со значением 1234567
.
2 - существует char array[4]
, у которого должен быть гекс выше указанного значения, равное 0x0012D687
3 - Я должен инвертировать этот массив символов [4] и достичь значения 0xFFED2978
Мне нужно сделать некоторые другие вещи, но я застрял в номере 3 выше.Последнее, что я попробовал, это
int value = 1234567;
char valuebuffer[4];
char invertbuffer[4];
sprintf(valuebuffer, "%04x", value);
for(i = 0; i < sizeof(valuebuffer); i++ )
{
invertbuffer[i] ^= valuebuffer[i];
}
Когда я печатаю, я читаю другое значение в invertbuffer
, а не 0xFFED2978