Надеюсь, вы можете помочь мне здесь:)
Я заказал RFID-метку и сканер для хобби. Тег отправляет входные данные тегу, который я хочу использовать в C-программе.
Проблема в том, что тег отправляет код в шестнадцатеричном формате - 10 символов - в длину.
Я пытался сохранить это число в длинной длинной переменной int, но, похоже, она не работает.
Когда я печатаю переменную с помощью printf, печатаются только первые 8 символов. Остальные (2 цифры не указаны).
long long int n1;
n1 = recieve_data();
printf("%lx", n1);
также я пытался самостоятельно ввести 10-значный шестнадцатеричный номер, делая:
long long int n1;
scanf("%lx", &n1);
printf("%lx", n1);
Я ввожу 10 цифр от 0 до F, но печатаются только 8 цифр / символов.
Должно быть какое-то целочисленное переполнение, но насколько я знаю:
1 цифра в шестнадцатеричном виде = 4 бита. Тогда 10 цифр в шестнадцатеричном виде = 40 бит? - long long int должно быть достаточно!
Если мои инстинкты верны, и происходит целочисленное переполнение, то как я могу это исправить? Очевидно, что ни одна переменная не является достаточно большой, чтобы содержать десятизначное шестнадцатеричное значение?
С наилучшими пожеланиями
Николас - Дания