Mam takie programy do napisana jako prace domową
Program 1. Kompresja
Napisz program, który wczytuje ciąg znaków a następnie kompresuje go w następujący sposób:
- dzieli ciąg na bloki po trzy litery, każdą małą literę zamienia na wielką, cyfry na znak '^', pozostawia spacje, a wszystkie inne znaki na '_';
- każdy trzyliterowy blok zamienia na liczbę z zakresu 0..32767, tak że każdemu znakowi odpowiada jego kod ASCII zmniejszony o 64 (literze a lub A->1, literze z lub Z->26, znakowi ' '->29, znakowi ^->30, znakowi _->31); w bitach od 2 do 6 zapisany jest pierwszy znak, w bitach od 7 do 11 - drugi, a w bitach od 12 do 16 trzeci;
- jeśli blok jest ostatnim blokiem napisu - ustaw 'luźny' bit (najbardziej znaczący) na 1;
- wypisuje ciąg liczb na ekran.
Program 2. Dekompresja
Napisz program który wczyta sekwencję liczb z naturalnych mniejszych od 32768 i zamieni je z powrotem na tekst (ma to być operacja odwrotna do tej opisanej w poprzednim zadaniu). Program powinien czytać liczby tak długo, aż trafi na blok z ustawionym najbardziej znaczącym bitem - co oznacza koniec wczytywania danych.
I prawie udało mi się je zrobić ale wciąż nie mogę dojść jak zapisywać i odczytywać z konkretnych bitów. Czy ktoś mógłby być tak miły i wyjaśniłby mi to w jakiś przejrzysty sposób?