Ha szívesen korrepetálnál, hozd létre magántanár profilodat itt.
Ha diák vagy és korrepetálásra van szükséged, akkor regisztrálj be és írd meg itt, hogy milyen tantárgyban!
Hogyan írnátok le a következő dátumot bináris formátumba?
asdasdasd
kérdése
323
1998.11.21.
Illetve arra lennék még kíváncsi,hogy a következő képletet,hogyan számolnátok ki bináris számokat használva?
13-37 , (a kettes komplemens használatát kell igénybe venni)
Jelenleg 1 felhasználó nézi ezt a kérdést.
0
Felsőoktatás / Fizika
Válaszok
1
AlBundy{ Polihisztor }
megoldása
A dátum: 11111001110.1011.10101
A kivonáshoz először váltsuk át a két számot kettes számrendszerbe:
13 --> 1101
37 --> 100101
A 13 négy biten, a 37 hat biten ábrázolható. Viszont a kettes komplemens kódban ha a szám legfelső helyiértéke (MSB-je) 1-es, akkor az negatív, tehát ezeket a számokat kettes komplemensben legalább hét biten lehet ábrázolni:
13 --> 0001101
37 --> 0100101
A kivonást úgy csináljuk hogy a 13-hoz hozzáadunk -37-et. Kettes komplemensben úgy képezzük egy szám ellentettjét, hogy invertálunk minden bitet, majd hozzáadunk 1-et. Tehát:
0100101 --> 1011010 --> 1011011
Vagyis a -37 kódja 1011011. Az összeadást ezután már minden további nélkül elvégezhetjük:
0001101+1011011=1101000
Már csak az eredményt kell átváltanunk tízes számrendszerbe. Látjuk, hogy az MSB 1-es, tehát negatív a szám. Képezzük az ellentettjét:
1101000 --> 0010111 --> 0011000
A 0011000 pedig a 24 kettes számrendszerbeli ábrázolása, tehát az eredmény -24.
Illetve úgy is lehet gondolkodni, hogy a kettes komplemens kódban minden helyiérték a szokásos, kivéve az MSB-t, mert az a szokásosnak pont az ellentettje. Tehát az 1101000 kódot úgy is át lehet váltani tízes számrendszerbe, hogy:
`-1*2^6+1*2^5+0*2^4+1*2^3+0*2^2+0*2^1+0*2^0=-64+32+8=-24`
Megjegyzés: térjünk egy kicsit vissza a 0001101+1011011=1101000 összeadásra. Ha nem kettes komplemensben dolgoznánk, akkor ez a 13+91=104 összeadás bináris formája lenne. Ezért nagyszerű a kettes komplemens kód: ha van egy olyan aritmetikai egységünk, amely pozitív egészekkel tud számolni, akkor az valójában negatív egészekkel is tud számolni bármiféle módosítás nélkül egész egyszerűen csak azáltal, hogy a szokásostól eltérően értelmezzük a bináris kódot. Tehát a kettes komplemens egy nagyon kézenfekvő és természetes kiterjesztése a "sima" bináris kódnak.
0
asdasdasd:
Köszönöm a részletes leírást!! Az első feladat sajnos nem jó,ezt az eredményt nekem sem fogadták el. A 3 pontból 0,75 pontot ért... A második feladatot meg én másképp csináltam és nem ez az eredmény jött ki,szóval valószínűleg a tiéd jó!! Még 1x köszi.
5 éve0
AlBundy:
Márpedig a dátumban szereplő számoknak ez a bináris alakja. Ha nem fogadta el a tanárod, akkor valószínűleg nem így szól a teljes feladat. Nem volt megadva, hogy az egyes mezőknek hány bitesnek kell lenniük? Vagy esetleg valamilyen konkrét elvárt formátum, pl. Unix idő?
5 éve0
asdasdasd:
Mindenesetre akkor bemásolom a teljes feladatot:
5 éve0
asdasdasd:
H1. feladat: Írja le a saját születési dátumát bináris formátumban! Részletezze és indokolja a választott formátum szerkezetét! A formátum megválasztásánál figyeljen arra, hogy az bárkinek a születési dátumának kódolására alkalmas legyen.
5 éve0
AlBundy:
Hát így már mindjárt más... Részletezted a választott formátumot? A hónap 1-12 lehet, ezt tehát 4 biten kell tárolnunk. A nap 1-31 lehet, ez 5 biten fér el. Az évvel kapcsolatban felmerülnek kérdések. Ha csak a ma élő személyek születésnapját szeretnénk tárolni, akkor az év maximum 2018 lehet, ehhez 11 bit kell. Viszont 11 bittel már csak 2047-ig leszünk jók, úgyhogy nem lenne hüleség felvenni...
5 éve0
AlBundy:
...egy 12. bitet is. Aztán az is kérdés, hogy szeretnénk-e tárolni mondjuk Arisztotelész születésnapját. Ha igen, akkor negatív számokról is gondoskodnunk kell, tehát kettes komplemensben kell értelmeznünk az évet. És ez még mindig csak a triviális eset, kitalálhatnánk valami teljesen saját időformátumot is. A Unix epoch formátum például minden időpontot...
5 éve0
AlBundy:
...az 1970. január 1. éjfél óta eltelt másodpercek számával azonosít.
5 éve0
asdasdasd:
Tehát akkor az Unix epoch formátum alkalmazása lenne a megoldás erre a feladatra? Sajnos ezzel még nem találkoztam -legalábbis ezen a néven-,szóval tudnád részletezni az előbb felvetett dátumon,hogy ez hogyan is nézne ki ?
5 éve0
AlBundy:
Nem, nem azt mondom. Ha nem találkoztál vele órán, akkor meg pláne nem. A te megoldásod numerikusan tökéletes, csak részletezni kellett volna, hogy az egyes mezőket miért olyan szélességűre választottad. Te csak simán átváltottad a számokat, és a születésnapod történetesen pont olyan, hogy mindhárom mezőt maximálisan kihasználja. De ha január másodikán születtél volna,...
5 éve0
AlBundy:
...akkor a válaszod 11111001110.1.10. lett volna, ebben a formátumban pedig senkinek a születésnapját nem lehet ábrázolni, aki január harmadika után született. Tehát azért kaptál kevés pontot, mert ez a gondolatmenet hiányzott, és csak "véletlenül" volt jó a válaszod.
5 éve0
asdasdasd:
De nekem olyan formátumban kellett megoldanom a feladatot ,hogy minden születésnapra jó legyen ,akkor tehát a január 2.-ara nem lett volna jó ,így akkor ebből a sebből is vérzik a megoldásom . Ezért is kéne egy olyan formátum ,amiben pl a január 2. is helyes.Erre lennék kíváncsi ,mert akkor ezek szerint ez a jó is!
5 éve0
AlBundy:
Dehogynem lett volna jó. A te születésnapod kihasználja minden mezőre a maximális bitszámot (év 11, hónap 4, nap 5). Miért ne lehetne ábrázolni január másodikát ebben a formátumban? 11111001110.0001.00010.
5 éve0
asdasdasd:
Értem..Akkor lehet ,hogy panaszt fogok tenni a javítás miatt ..,köszönöm a segítséget!
5 éve0
AlBundy:
Hát ha ezt a gondolatmenetet nem írtad le, akkor valamennyire jogos, hogy nem kaptál sok pontot. Mondjuk az is igaz, hogy a teljes pontszám negyede talán túlzás, mert a végeredmény azért jó.
5 éve0