Форум: "Основная";
Текущий архив: 2005.03.27;
Скачать: [xml.tar.bz2];
ВнизКоличество четных бит? Найти похожие ветки
← →
100a (2005-03-10 21:28) [0]Есть-ли стандартные функции по подсчету
нуливых бит в масиве или переменной??
← →
Anton_K © (2005-03-10 21:31) [1]А компонент тебе не надо?
← →
Defunct © (2005-03-10 21:37) [2]
function ZCount( Value : Cardinal ):integer;
var
i : integer;
begin
Result := 32;
for i := 0 to 31 do
begin
Result := Result - (Value and 1);
Value := Value shr 1
end
end;
← →
TechnoDreamer © (2005-03-10 22:01) [3]/Anton_K © (10.03.05 21:31) [1]
А компонент тебе не надо?/
Вот блин, молоко еще на губах не обсохло, а туда же, не можешь/не хочешь помочь, чё лезешь? Форум засоряешь, нечего сказать, так хоть что-то вякну.
← →
Zeqfreed © (2005-03-10 22:13) [4]TechnoDreamer © (10.03.05 22:01) [3]
<личная переписка>
Иногда лучше жевать. Позвольте спросить, оскорбление и отголоски дискриминации - это признаки обсохшего молока?
</личная переписка>
← →
ламер_ © (2005-03-10 22:18) [5]Возраст не является показателем мастерства (а равно и обратное).
> нечего сказать, так хоть что-то вякну.
Мне кажется, что именно это вы и сделали.
Тех, кто презирает программистов, программисты презирают сильнее, чем те, кто презирает программистов, презирающих программистов, которые презирают тех, кто их презирает.
← →
GuAV © (2005-03-10 22:21) [6]
> for i := 0 to 31 dowhile Value <> 0 do
:p
← →
Poirot © (2005-03-10 23:29) [7]Для решения подобного класса задач мб посмотреть коекакую литру:)Например очень, по моему мнению, интересная книжка "Алгоритмические трюки для программистов" Генри Уоррен
Например там Defunct © (10.03.05 21:37) [2] есть и кое что доля массивов тоже найдёте:)
а вообще классная книжка:) Маст хэв:)))
← →
Anatoly Podgoretsky © (2005-03-11 00:35) [8]Defunct © (10.03.05 21:37) [2]
Value := Value shr 2
биты то четные
← →
Defunct © (2005-03-11 01:16) [9]GuAV © (10.03.05 22:21) [6]
неа, она ж нули считает ;>
← →
Defunct © (2005-03-11 01:17) [10]Anatoly Podgoretsky © (11.03.05 00:35) [8]
эх?
← →
Gero © (2005-03-11 01:24) [11]Ого, да тут серьезные чуваки, пойду-ка я отсюда.
← →
GuAV © (2005-03-11 08:30) [12]Defunct © (11.03.05 1:16) [9]
Она считает c минусом и единицы :)
← →
TechnoDreamer © (2005-03-11 12:35) [13]ламер_ © (10.03.05 22:18) [5]
Возраст не является показателем мастерства (а равно и обратное).
> нечего сказать, так хоть что-то вякну.
Мне кажется, что именно это вы и сделали.
Да нет, просто запарила привычка людей не отвечать на вопросы, а что нибуть глубокомысленно сказать, типа читай мануал. Пусть у человека был элементарный вопрос, не хочешь отвечать, на него не отвечай, а то ему сразу: а может тебе компонент еще дать. Никого конечно не хотел обидеть, может настроение плохое было, но на этом форуме это стандартное явление, делать такие глкбомысленные ответы.
← →
Gero © (2005-03-11 13:24) [14]
> TechnoDreamer © (11.03.05 12:35)
Ага, твой пост №3 очень глубокомысленный.
И польза автору ветки с него огромная.
Так что, если хочешь что-то изменить — начни с себя.
← →
uny © (2005-03-11 13:29) [15]>Так что, если хочешь что-то изменить — начни с себя
если у меня есть ключ от твоего замка - почему он должен подходить к моему
(с)
← →
Marser © (2005-03-11 13:36) [16]
> 100a (10.03.05 21:28)
Что ты вкладывешь в понятие чётного бита? Если нулевой разряд байта равен нулю - байт четный. Всё. Ибо все остальные степени двойки - четные числа.
Если же ты хочешь проверить некий двоичный разряд, тебе поможет булева логика. Допустим
if b and $80>0 then ...
Проверяет, выставлен ли в байте седьмой разряд. ($80 = 128 = 10000000b)
А вообще такие вещи нужно делать с закрытыми глазами.
> TechnoDreamer ©
Гы. В контексте Анатолия Подгорецкого ты не просто сопляк... Тут не семь, а 31 год разницы. А ты принуждаешь его читать свои грубости. Тем паче, что по сабжу не нашел, что ответить.
← →
DiamondShark © (2005-03-11 14:16) [17]Функция считает количество единичных бит:
function BitCount(X: Cardinal): Integer;
asm
mov EDX, EAX
and EDX, $55555555
shr EAX, 1
and EAX, $55555555
add EAX, EDX
mov EDX, EAX
and EDX, $33333333
shr EAX, 2
and EAX, $33333333
add EAX, EDX
mov EDX, EAX
and EDX, $0F0F0F0F
shr EAX, 4
and EAX, $0F0F0F0F
add EAX, EDX
mov EDX, EAX
and EDX, $00FF00FF
shr EAX, 8
and EAX, $00FF00FF
add EAX, EDX
mov EDX, EAX
and EDX, $0000FFFF
shr EAX, 16
and EAX, $0000FFFF
add EAX, EDX
end;
Как подсчитать количество нулевых бит, а так же в массиве, надеюсь, ума хватит.
← →
uny © (2005-03-11 14:20) [18]автор и не думал как ему повезёт)
← →
Anatoly Podgoretsky © (2005-03-11 14:34) [19]Правильно надо автора пытать, пока не расскажет по русски, что надо сделать, что такое четные биты. До тех пор, оставим каждому отвечающему самому решать, каким образом это делать.
← →
Anton_K © (2005-03-11 14:50) [20]
function BitCount(X: Cardinal): Integer;
asm
push ebx
mov ebx,eax
xor eax,eax
mov ecx,32
@:
mov edx,ebx
and edx,1
jz @@
inc eax
@@:
shr ebx,1
loop @
pop ebx
end;
← →
Anton_K © (2005-03-11 14:54) [21]Функция считает единичные биты.
← →
Defunct © (2005-03-11 22:11) [22]DiamondShark © (11.03.05 14:16) [17]
Anton_K © (11.03.05 14:50) [20]
ОО господа принялись за тяжелую артилерию, что ли и мне пять копеек вставить ;>function NonZeroBitCount(const Value: Cardinal): integer; assembler;
asm
xor ecx, ecx
test eax, eax
xchg ecx, eax
@L1:
jz @Done
shr ecx, 1
jnc @L1
inc eax
jmp @L1
@Done:
end;
function ZeroBitCount(const Value: Cardinal): integer; assembler;
asm
mov ecx, 32
test eax, eax
xchg ecx, eax
@L1:
jz @Done
shr ecx, 1
jnc @L1
dec eax
jmp @L1
@Done:
end;
← →
Virgo_Style © (2005-03-11 23:01) [23]Нулевые подсчитали, а четные и нулИвые - нет :-(
:-)))
← →
Kerk © (2005-03-11 23:06) [24]считает кол-во единиц.
count := 0;
while num > 0 do
begin
num := (num-1) and num;
Inc(count);
end;
← →
Verg © (2005-03-11 23:19) [25]
> Kerk © (11.03.05 23:06) [24]
Браво.
← →
Sha © (2005-03-12 01:25) [26]> Verg © (11.03.05 23:19) [25]
Известный трюк :)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.03.27;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.044 c