Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > char and hashcode


Автор: Legolas 27.1.2011, 15:55
Добрый день! решил написать простенькую прогу - вводится несколько символов, далее я считываю их хешкоды. вопрос: как восстановить из хешкода символ обратно? 

Автор: jonie 27.1.2011, 16:40
Legolas, легально - никак. На то это и есть ХЕШ. Можно сравнивать хеш полученный от симола с каким-то эталонным (например c.GetHashCode() == 'A'.GetHashCode() )....

Автор: Kaerus 27.1.2011, 16:44
Табличку создай (char | hash) для всех используемых чаров.

Автор: jonie 27.1.2011, 16:54
Kaerus, 2^16 * 4 байт забивать в памяти.. ну можно,да....

Автор: Kaerus 27.1.2011, 17:22
Ну что за бред, ты попробуй с клавиатуры ввести все символы utf-8. А для всех популярных символов, табличку можно сгенерировать кодом из 20 строк

Автор: jonie 27.1.2011, 18:32
Цитата

Ну что за бред, ты попробуй с клавиатуры ввести все символы utf-8.
скажите код - введу. ALT+789 например это знак § ...

Условное программирование это антипаттерн...

Автор: Kaerus 27.1.2011, 19:18
Цитата(jonie @  27.1.2011,  16:40 Найти цитируемый пост)
например c.GetHashCode() == 'A'.GetHashCode() 

Это в любом случае лучше, чем для каждого чарта десятки тысяч раз считать хеш код.
На самом деле не так уж много памяти получается < 300 кбайт. Зато расчет будет мгновенный.

А на шаблонах лучше не зацикливаться, Джошуа Кериевски подтверждает.

Автор: jonie 27.1.2011, 23:11
Kaerus, можно найти компромис в виде сортировки по наиболее испольуемым + все остальные. Как показывает практика то чего не ожидаешь прочти всегда получаешь 8(

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)