Bevezetés a játék-Dicom fájlformátumba II. (Megoldások)
- 1100=8*1+4*1+0*2+0*1=12=C.
- C=12
- CC=C*16+C=12*16+12=192+12=204
- A kérdés: melyik irányban nőnek a helyiértékek?
- A válasz volt: a helyiértékek jobbról balra növekszenek. Tehát, a 1F CC sorban az 1F helyiértéke 1 és a CC-jé 256. 1F=31 és CC=16*12+12=204. Végül: 1F CC = 31*1+204*256= 31+7936=7967
- ha balról jobbra növekszenek a helyiértékek: 1F CC = 204+256*31= 204 + 7936 = 8140
- Nem ekkor nem lehetséges az adatfolyam dekódolása anélkül, hogy feltennénk a következő kérdéseket: a) mi a számok csoportosítása: bájtok, szavak vagy az egész sztring egy decimális szám? b) hogyan olvassuk a csoportokat: melyik irányban növekednek a helyiértékek?
- At első kérdésre a válasz: a) ezek szavak, ekkor a helyes csoportosítás 11 01 1F 2A 11 11b) A helyiértékek jobbról balra nőnek, tehát11 01 = 256*11+1= 256*17+1= 43531F 2A = 256*31+42=7936+32 = 797811 11 = 256*17+17=4352+17= 4369A kódolt decimális adatsor tehát4353, 7978, 4369
- Mielőtt megválaszolnánk a kérdéseket nevezzük át a speciális bájtokat (és csak a speciális bájtokat. Honan tudjuk, hogy melyek a speciális bájtok?) a következőképpen: 00 - *FF - +11 - ()Ha átírjuk a a bájtfolyamot, ezekkel a jelölésekkel:* 01 * 00 * 00 + 00 B1 + 00 00 + 00 11 () 42 59 45 11 42 59 45Tiszta sor, hogy ha nem lett volna meg az első 00=*, akkor nem tudtuk volna, hogyan olvassuk a a bájtfolyamot. Miután átírtuk a bájtokat látjuk, hogy először három bájtunk van, a következő decimális értékekkel: 1, 0 és 0. Ezután 3 szavunk van a következő értékekkel:00 B1 = 177, 00 00 = 0, 00 11 = 17Végül a () szimbólum bevezeti a Latin-2 kódolású karakterek folyamát:BYEBYEVegyük észre, hogy miután bevezettük a * jelölést, senki sem kérdezi meg, hogy a harmadik 00 az eredeti bájtfolyamban miért nem speciális karakter. Világos, hogy a kódolási rendszerünkből adódik, hogy a speciális szimbólumokat bájtok vagy szavak követnek. A () szimbólum után a helyzet egy kissé komplikáltabb. Nem lehet látni, hogy hol végződik egy karaktersorozat