IMEI состоит из 3-х групп цифр — TAC+Serial#+Check Digit.
TAC (англ. Type Allocation Code) — типовой код распределения.
RBI (англ. Reporting Body Identifier). Символьное обозначение — NN.
Type Identifier. Символьное обозначение — XXXX XX.
Serial No (Серийный номер). Назначается производителем индивидуально для каждого устройства. Символьное обозначение — ZZZZZZZ.
Check Digit (Проверочный код). Символьное обозначение — A.
[править]
Алгоритм вычисления Check Digit
Чтобы расчитать Check Digit:
Каждый второй символ слева направо умножаем на 2.
Складываем каждое получившееся на Шаге 1 число между собой (обратите внимание, что, например, 14 мы складываем, как 1 + 4).
Складываем между собой нечетные числа IMEI (первое, третье, пятое и т.д.). Если в конце полученного значения будет 0, то расчет Check Digit завершен, то есть Check Digit равен нулю. Если в конце не 0, то переходим к Шагу 4.
Суммируем значения Шага 2 и Шага 3 (здесь, например, 14 будем считать как 14, а не 1 + 4).
Вычитаем из ближайшего значения к числу, полученному на Шаге 4, оканчивающемуся на ноль значение, полученное на Шаге 4 — получаем значение последней пятнадцатой цифры IMEI-кода.