Práce s bitovým polem
Napište modul (hlavičkový a zdrojový soubor) pro práci s bitovým polem libovolné délky. Umožněte nastavení bitu, změnu bitu, nulování bitu, čtení bitu. Napište funkci, která „otočí proměnnou“ - tj. první bit bude vyměněn s posledním, předposlední s druhým … Funkčnost demonstrujte na krátkém programu (druhý zdrojový text s main). Pro bitové pole použijte strukturu s proměnnými: ukazatel a délka pole (popřípadě další potřebné proměnné).
Nápověda:
1) vytvořte funkci pro inicializaci strukury s bitovým polem, která bude mít jako parametr strukturu, která v ní má být inicializována, dalším parametrem bude požadovaný počet bitů, a inicializační hodnotu 1 nebo 0 (kterou budou naplněny všechny bity). Pro zjištění velikostí typů použijte předdefinované parametry z knihoven (nastudujte obsah knihovny překladače „float.h“ a „limits.h“). Bitové pole realizujte pomocí proměnné celočíselného typu tak, aby v nich byly využity všechny bity (například pro typ char s osmi bity bude v každé jednotce char uloženo osm (nezávislých) bitů).
2) Každá alokace paměti musí mít uvolnění paměti a tedy napište funkci pro odalokování pole, která bude mít jako parametr „nulovanou“ strukturu. Po provedení musí obsahovat struktura takové hodnoty, aby nebylo možné ji použít bez předchozí inicializace.
3) Funkce pro nastavení, změnu, nulování a čtení bitu budou mít dva parametry – strukturu a číslo bitu se kterým se pracuje. Pro všechny bude společný test, zda se se strukturou dá pracovat (je inicializovaná a bit se kterým se má pracovat není mimo její rozsah) a dále bude společné hledání prvku (bytu, slova …) ve kterém leží daný bit a na které pozici v něm se nachází. Z důvodu vícenásobného výskytu stejného kódu by bylo vhodné vytvořit funkci, která provede test a funkci, která zjistí prvek a pozici v něm (např. Vrátí maskovací bit). K provedení vlastní operace viz. Elektronické texty kapitola 5.2.5, 5.2.7 (bitová negace, velikost typu, AND, OR, XOR …)
Poslední změna 2006-10-24