7. praktikum - Bitt-tehted (itv0020): erinevus redaktsioonide vahel
Mine navigeerimisribale
Mine otsikasti
Resümee puudub |
Resümee puudub |
||
| (ei näidata sama kasutaja 4 vahepealset redaktsiooni) | |||
| 1. rida: | 1. rida: | ||
{{Mall:itv0020}} | |||
''Selles praktikumis püüame salvestada infot hästi kompaktselt'' | ''Selles praktikumis püüame salvestada infot hästi kompaktselt'' | ||
| 18. rida: | 19. rida: | ||
* Küsimuste stringid on mõttekas salvestada eraldi .h failis ja kaasata #include abil. | * Küsimuste stringid on mõttekas salvestada eraldi .h failis ja kaasata #include abil. | ||
* Vastuste salvestamisel peaks kasutama bitimaski või bitinihet. | * Vastuste salvestamisel peaks kasutama bitimaski või bitinihet. | ||
* Kasutage bithaaval toimuvate (''bitwise'') tehetes kasutatavates andmetüüpides ''unsigned'' võtmesõna. (Miks see oluline on?) | |||
* Ühebaidiste andmete väljakirjutamiseks ja lugemisest saate kasutada fputc() ja fgetc() funktsiooni | |||
* Reapuhvri tõttu on vastus "y" tegelikult "y" ja reavahetus, arvestage. | |||
* Vastuseid hoidva faili sisu vaatamiseks on võib-olla abi programmist hexdump | * Vastuseid hoidva faili sisu vaatamiseks on võib-olla abi programmist hexdump | ||
* Binaarmaskide väljamõtlemisel ei pea te baidi 256 väärtust pähe õppima. Piisab nendest 16st: | * Binaarmaskide väljamõtlemisel ei pea te baidi 256 väärtust pähe õppima. Piisab nendest 16st: | ||
| 39. rida: | 43. rida: | ||
Selle tabeli kasutamisel on võimalik mõista et kui hexdump ütleb, et baidi väärtus on F5, järeldub sellest et baidi sisuks on 11110101 . Lihtne! | Selle tabeli kasutamisel on võimalik mõista et kui hexdump ütleb, et baidi väärtus on F5, järeldub sellest et baidi sisuks on 11110101 . Lihtne! | ||
== Väljakutse == | |||
Väljakutse korral võite proovida sama programmi implementeerida teisiti: kasutades ''bit-fields'' nimelist bitivälja struktuuris. (Loeng 7 algus) | |||
struct test { | |||
unsigned int esimene:1; | |||
unsigned int teine:1; | |||
}; | |||
[[Kategooria:itv0020]] | [[Kategooria:itv0020]] | ||
Viimane redaktsioon: 12. oktoober 2010, kell 16:18
Selles praktikumis püüame salvestada infot hästi kompaktselt
Ülesanne
Eesmärgiks on kirjutada kaks programmi: ask ja show.
Ask
- Programm küsib kasutajalt 8 küsimust, mida on võimalik vastata "jah/ei".
- Seejärel salvestab vastused ühebaidilisse faili.
Show
- Programm näitab programmi ask poolt faili salvestatud vastused ekraanile.
Vihjeid
- Küsimuste stringid on mõttekas salvestada eraldi .h failis ja kaasata #include abil.
- Vastuste salvestamisel peaks kasutama bitimaski või bitinihet.
- Kasutage bithaaval toimuvate (bitwise) tehetes kasutatavates andmetüüpides unsigned võtmesõna. (Miks see oluline on?)
- Ühebaidiste andmete väljakirjutamiseks ja lugemisest saate kasutada fputc() ja fgetc() funktsiooni
- Reapuhvri tõttu on vastus "y" tegelikult "y" ja reavahetus, arvestage.
- Vastuseid hoidva faili sisu vaatamiseks on võib-olla abi programmist hexdump
- Binaarmaskide väljamõtlemisel ei pea te baidi 256 väärtust pähe õppima. Piisab nendest 16st:
0 - 0000 1 - 0001 2 - 0010 3 - 0011 4 - 0100 5 - 0101 6 - 0110 7 - 0111 8 - 1000 9 - 1001 a - 1010 b - 1011 c - 1100 d - 1101 e - 1110 f - 1111
Selle tabeli kasutamisel on võimalik mõista et kui hexdump ütleb, et baidi väärtus on F5, järeldub sellest et baidi sisuks on 11110101 . Lihtne!
Väljakutse
Väljakutse korral võite proovida sama programmi implementeerida teisiti: kasutades bit-fields nimelist bitivälja struktuuris. (Loeng 7 algus)
struct test {
unsigned int esimene:1;
unsigned int teine:1;
};