Нет, вообще невозможно превратить 24-битное число в 40-битное. Такое преобразование означает, что вы добавляете 16 бит дополнительной информации к 24-битному значению. Эта дополнительная информация не появится волшебным образом из ниоткуда.
В вашем случае цифры
- 24-битный формат: 0005966009dec =
5B08B9hex
- 8+16-битный формат: 091dec и 02233dec =
5Bhex
& 08B9hex
- 40-битный формат: 455272499385dec =
6A005B08B9hex
Таким образом, все три числа содержат 24 общих бита (5B08B9hex
). 40-битное число имеет дополнительное значение префикса 6A00hex
.
Поскольку вы не указали, какую систему RFID и какие метки вы используете (кроме того, что они работают на частоте 125 кГц), невозможно сказать, является ли этот префикс каким-то стандартным префиксом, одинаковым для всех меток, или этот префикс меняется для всех меток. каждый тег (или каждый производитель, клиент и т. д.)
Если префикс одинаков для всех ваших тегов, вы можете легко использовать значение 6A00hex
в качестве старших 16 бит серийного номера каждого тега. Однако, если префикс может быть разным для разных тегов, то нет другого пути, кроме как получить считыватель, который считывает этот полный 40-битный серийный номер.
Тем не менее, если все ваши читатели читают только 24-битное значение, я не понимаю, почему вы вообще хотите использовать все 40-битное значение. Даже если у вас уже есть база данных, содержащая все 40-битное значение, вы можете легко обрезать это значение до 24-битного значения (при условии, что младшие 24 бита (достаточно) уникальны для всех ваших тегов).
person
Michael Roland
schedule
09.01.2016
455272499385
является 40-битным эквивалентом0005966009
в 24-битном формате? - person Iron Fist   schedule 04.01.2016455272499385
имеет 40-битный формат, а0005966009
- 24-битный формат? - person Iron Fist   schedule 04.01.2016