-
Data: 2015-12-05 09:37:39
Temat: Re: Struktura do przydzielania numerków
Od: Borneq <b...@a...hidden.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu 2015-12-05 o 00:49, bartekltg pisze:
> Jak opisałem poprzednio, kolejka fifo w cyklicznym buforze.
> Ale inicjalizowana małą ilośćią liczb na początek.
> Jeśli kolejka opustoszje, realokujesz dla niej dwa raz wiekszą
> pamieć (tzn powiekszasz vectror, w którym to trzymasz:)
> i dodajesz kolejne liczby.
Pomysł ciekawy, zwłaszcza to, że jest inicjowana małą ilością liczb na
początek, a potem można zwiększać. Kolejkę FIFO rozumiem jako dwa
indeksy wskazujące na bufor, aby nie trzeba było przemieszczać danych?
Na razie zaangażowałem się w maski potrójnego poziomu - maska maks. 256
bitów, drugiego poziomu miała być 65 K a trzeciego 16 M. To raczej
skomplikowana sprawa, więc, jak będą trudności zrobię powiększające się
FIFO.
Wracając do szukania bitu w słowie:
zrobiłem testy, tam m.in. dwie metody z Uczty Programistów, które
przesuwają kolejno o 18,8,4 i 2 bity. Metoda połówkowania całkowita do
bitu i do czterech bitów; dodałem również dla porządku najoczywistszą
metodę pętli.
Co się okazało: wszystkie mniej więcej w tym samym czasie, a najszybsza
była metoda w pętli: (co dziwne, bo czas miał być proporcjonalny do
liczby bitów a nie logarytmu z nich)
int ntz5_15(unsigned x)
{
int n;
x = ~x & (x - 1);
n = 0;
while (x != 0)
{
n = n + 1;
x = x >> 1;
}
return n;
}
Tutaj jest jeden myk: "x = ~x & (x - 1)" wypełnia bity aż do napotkania
pierwszej jedynki od dołu. Dzięki temu nie trzeba w pętli stosować AND.
W gruncie rzeczy potrzebowałem szukać zer, więc:
int findZero32(uint32_t x)
{
int n;
x = x & (~x - 1);
n = 0;
while (x != 0)
{
n = n + 1;
x = x >> 1;
}
return n;
}
Lecz dla 64 bitów pętla to przesada, więc połówkuję go:
int findZero64(uint64_t x)
{
if ((x | 0xffffffff00000000)!= 0xffffffffffffffff)
return findZero32((uint32_t)x); //this branch must be first
else
return findZero32((uint32_t)(x >> 32)) + 32;
}
Jeszcze o testach: test jednorodny odpada, bo połowa przypadków to były
by pomiędzy 2 miliardy a 4 miliardy. Wybieram więc liczbę jedynek od 1
do trzech, potem dla bitu losuję pozycję od 0 do 31 i ustawiam.
Pozdrawiam
Następne wpisy z tego wątku
- 05.12.15 12:44 M.M.
- 06.12.15 10:12 Borneq
- 06.12.15 10:21 Borneq
- 06.12.15 11:29 Borneq
- 06.12.15 17:26 bartekltg
- 06.12.15 19:47 Borneq
- 07.12.15 01:05 Borneq
- 07.12.15 03:09 bartekltg
- 07.12.15 03:13 bartekltg
- 07.12.15 10:31 Borneq
Najnowsze wątki z tej grupy
- Rosjanie chwalą się prototypem komputera kwantowego. "Najważniejszy projekt naukowy Rosji"
- A Szwajcarzy kombinują tak: FinalSpark grows human neurons from stem cells and connects them to electrode arrays
- Re: Najgorszy język programowania
- NOWY: 2025-09-29 Alg., Strukt. Danych i Tech. Prog. - komentarz.pdf
- Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- Błąd w Sofcie Powodem Wymiany 3 Duńskich Fregat Typu Iver Huitfeldt
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
Najnowsze wątki
- 2026-01-07 POCO
- 2026-01-07 Kraków => Konsultant Microsoft Dynamics AX/365 SCM Consultant - Servi
- 2026-01-07 Kraków => Microsoft Dynamics AX/365 SCM Consultant - Service & Suppor
- 2026-01-06 I kolejny
- 2026-01-06 Retro organizer ale współcześnie
- 2026-01-06 Bowling
- 2026-01-06 Cyganie
- 2026-01-06 Rozwód w Santanderze z prostokątną kobietą...
- 2026-01-06 Skąd diody LED 1,5V?
- 2026-01-06 Nowum!!! -- Moje ID
- 2026-01-06 Metoda na fotoradar
- 2026-01-05 I jeszcze jeden
- 2026-01-05 Jaworek;)
- 2026-01-05 Warszawa => Project Manager (AI and innovation) <=
- 2026-01-05 Gdańsk => Konsultant ERP Microsoft Dynamics 365 Commerce <=




5 Najlepszych Programów do Księgowości w Chmurze - Ranking i Porównanie [2025]