7. praktikum - Bitt-tehted (itv0020): erinevus redaktsioonide vahel

Allikas: Lambda
Mine navigeerimisribale Mine otsikasti
Resümee puudub
Resümee puudub
 
(ei näidata sama kasutaja 3 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.
* 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:

Viimane redaktsioon: 12. oktoober 2010, kell 16:18

Süsteemprogrammeerimine keeles C

Praktikumid

Laborid

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;
};