@synapse_people

Можно ли перевести госномер в int32?

Есть госномер машин.. Регулярка выглядит вот так:
[АВЕКМНОРСТУХ]{1}[0-9]{3}[АВЕКМНОРСТУХ]{2}[0-9]{2,3}

Есть возможность уложить в int32(и чтобы можно было обратно)?
Или нет.... Помогите
Если тратить 4 бита на букву, получается 4+12+8+12 - 36 бит( Есть способы?
  • Вопрос задан
  • 181 просмотр
Решения вопроса 1
@RidgeA
[АВЕКМНОРСТУХ]{1} - 4 бита - номер буквы во последовательности
[0-9]{3} - 10 бит для кодирования числа 0-999
[АВЕКМНОРСТУХ]{2} - 4 * 2 = 8 бит
[0-9]{2,3} - 10
Итого 32 бита ровно
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
а зачем строку хранить в виде числа?
Но в целом можно, написать свой кодировщик, который будет формировать по определенному принципу число и доставать обратно. По сути в номере не так много не числовых символов, так что можно сделать таблицу сопоставлений свою типа:
1 => 01,
A => 11,
B => 12,

В гос номерах не все буквы допустимы, там их немного может быть, только те что имеют аналог в латинице, если я не ошибаюсь.
Так что после кодировки разбиваем по два числа и декодируем обратно.
Ответ написан
mashletov
@mashletov
Math.random()
на букву хватит 4 бита = 4 * 3 = 12 бит
на цифру хватит 10 бит = 10 * 2 = 20 бит
Итого 12 + 20 = 32 бит. Хватит
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы