Přetypováním charu na byte (nebo funkcí Ord) získáš číselnou hodnotu znaku (tedy ASCII kód). Převod čísla do dvojkové soustavy vypadá nějak takhle:
číslo:=jeden byte ze vstupu
výsledek:=prázdný řetězec
cyklus pro všechny bity čísla (pro 1 B tedy osmkrát):
- jestli je číslo liché, připiš k výsledku zleva znak '1', jinak '0'
- číslo vyděl dvěma (nebo posuň o 1 bit doprava, to vyjde nastejno)
Nevím, jakým způsobem máš načítat ty unicodové texty. Z klávesnice to snad ani nejde (v TP určitě ne, u jiných překladačů nevím), takže bych čekal spíš vstup ze souboru. Každopádně to znamená čtení byte po bytu, rozbor každého bytu podle pravidel kódování Unicode a vždycky když získáš všechny byty jednoho písmena, jeden po druhém je převedeš do dvojkové soustavy a vypíšeš. O to, co je to ve skutečnosti za písmeno, se vůbec starat nemusíš. Pravidla UTF-8 máš tady: http://en.wikipedia.org/wiki/Utf-8#… .
Ty jednotlivé byty si můžeš ukládat do pole nebo po přetypování na char třeba do stringu. Převod na dvojkový tvar potom ještě zabalíš do cyklu "pro každý byte".