- 1
- 2
- 3
- 4
- 5
- 6
- 7
function GetBit(numBit,Val: integer):boolean;
var
i: integer;
begin
i := round(power(2,numBit-1));
result := (i and Val) >0;
end;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+101
function GetBit(numBit,Val: integer):boolean;
var
i: integer;
begin
i := round(power(2,numBit-1));
result := (i and Val) >0;
end;
Суровые и беспощадные битовые операции в дельфи. Причем коллега, у которого я это нашел неплохие программы пишет, во всяком случае по части удобства интерфейса мне до него далеко. Но иногда такие перлы встречаются.
>round(power(2,numBit-1));
нах round ?
а где-то сказано, что коллега числится на должности спеца по юзабилити?
>нах round ?
так ровнее, а может просто power возвращает вещественное число.
>numBit-1
а в паскале индексация от единицы? уже запамятовал
Именно. Это вещественная степень вещественного числа, в этом и говно.
>а в паскале индексация от единицы? уже запамятовал
Биты можно как угодно нумеровать. Но кстати когда я не думаю заменил это на свою няшную функцию нумерующую биты с нуля, то полчаса не мог понять что происходит.
Вся эта функция сводится к выражению (Val and (1 shl NumBit))<>0, или (Val and (1 shl (NumBit-1)))<>0 (если нумеровать биты с 1)
Ты так говоришь, как-будто в С их включили, и не приходится писать говно в духе