Показать сообщение отдельно
  #5  
Старый 19.11.2011, 04:19
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,035
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Господя!!!
Код:
function Deshifr(AIn : Byte) : DWORD;
begin
  If AIn > 63 Then Raise Exception.Create('Sorry, overflow...');
  Result := 1 shl AIn;
end;

пример простейший. Опять-же, не зыбывай, что разряды считаются справа на лево (это если тебя смутит картинка в статье - там Zi в обратном полядке - первым идет младший разряд).

Условие в функции сделано потому, что DWORD - 64 бита, т.е. в простейшем варианте можно сделать только для 7 входных бит. Если нужно больше, то уже надо изобретать велосипед со сложными длинными типами.
Ответить с цитированием