закодировать число в буквы - PullRequest
0 голосов
/ 20 января 2011

Допустим, у меня есть что-то вроде 97463

Я хочу закодировать его в буквы, скажем, kljhs

В данный момент я использую php / javascript, но, думаю, это универсальная проблема.

Какой самый эффективный способ сделать это способом, который обратим?

(обратимое значение, учитывая числа, я могу сделать буквенный код, а затем, используя только код числа, я могу вернуть буквы)

Ответы [ 2 ]

2 голосов
/ 20 января 2011

Вы можете просто использовать функцию strtr

$input = '123456';
$output = strtr($input, '0123456789', 'abcdefghij');

Для обратного хода используйте

$input = 'bcdefg';
$output = strtr($input, 'abcdefghij', '0123456789');

http://codepad.org/6hGqJPD6

0 голосов
/ 20 января 2011

Вы можете использовать dechex (), чтобы закодировать число как шестнадцатеричное, и hexdec () для обратного:

$hex = dechex(97463); // "17cb7"
$dec = hexdec($hex);  // 97463

В качестве альтернативы вы можете использовать base_convert (), чтобы преобразовать в произвольную базу от 2 до 36:

$enc = base_convert(97463, 10, 36);  // "237b"
$dec = base_convert("237b", 36, 10); // 97463
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...