Показать сообщение отдельно
Старый 22.01.2009, 02:47
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 1  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
По умолчанию Linear feedback shift register/Линейный сдвиговый регистр с обратной связью

Пытаюсь написать обратную функцию...
Совсем запутался... может кто моможет? А то я в этом не очень...

Код AS3:
var reg:uint = "A".charCodeAt();
var bit:uint;
var counter:int = 17;
var out:String = "";
out = reg.toString(2);
while(out.length < 16) out = "0" + out;
trace(out);
while(counter--)
{
	   bit = (reg & 0x0001) ^
			((reg & 0x0004) >> 2) ^
			((reg & 0x0008) >> 3) ^
			((reg & 0x0020) >> 5);
	   reg = (reg >> 1) | (bit << 15);
	   out = reg.toString(2);
	   while(out.length < 16) out = "0" + out;
	   trace("#", counter, "\t=>", out, "\t=>", String.fromCharCode(reg));
}
trace("------ decode -------");
counter = 17;
while(counter--)
{
	   bit = (reg & 0x0020) ^
			((reg & 0x0008) << 5) ^
			((reg & 0x0004) << 3) ^
			((reg & 0x0001) << 2);
	   reg = (reg << 1) <Что должно быть тут?>;
	   out = reg.toString(2);
	   while(out.length < 16) out = "0" + out;
	   trace("#", counter, "\t=>", out, "\t=>", String.fromCharCode(reg));
}
Ссылка на Википедию с объяснением
__________________
Hell is the possibility of sanity