Kezdőoldal » Számítástechnika » Programozás » Azok a számítógépek amik a...

Azok a számítógépek amik a biteket balra tömörítik a memóriában, a bitek növekvő sorszámozását balról kezdik (legalacsonyabb bit a baloldalon), vagy marad a jobbról növekvő (legalacsonyabb bit a jobboldalon)?

Figyelt kérdés
2016. júl. 1. 19:54
 1/8 Szirty ***** válasza:

Én mondjuk nem nagyon értem a kérdést, de azért válaszolok hátha sikerül kibogozni.


Mit jelent az hogy a "a biteket balra tömörítik"?


Jelenlegi ismereteim szerint a bitek mindig jobbról balra vannak számozva azok helyiértékének megfelelően. Nem tudok róla hogy ez alól van kivétel valamelyik számítógépben.


Nem lehet hogy a byte sorrenddel kevered a bit sorrendet?

(Big endian, little endian)

Mert a byte sorrend processzor függő, van ilyen is, meg olyan is. De a bitek sorrendje (a byte-on belül) itt is azonos.

2016. júl. 1. 20:35
Hasznos számodra ez a válasz?
 2/8 Hominida ***** válasza:

Amit kérdezel, valójában nincs, hiszen a bitek sorrendjét a sorszámozásuk írja elő. Az, hogy ÍRÁSBAN te milyen sorrendben írod le azokat, az már rád tartozik, és azokra, akik a te írásodat olvassák. Ha egy byte tartalmát te a 27601354 bitsorrendben írod le, és a decimális 204 úgy néz ki, hogy 11100100, attól a byte tartalma továbbra is az a szám lesz, amit kettes számrendszerben így írunk: 11001100. Azt sem tiltaná semmi, hogy te a byte tartalmát 3-as számrendszerben írd le, mert a memóriában akkor is csak binárisan van tárolva. Nem érdekes, hogy szerintünk a bitek milyen sorrendben vannak, mert a biteket a sorszámuk minden helyzetben azonosítja.


Az, hogy balra "tömörítik", balra igazítást jelent, gondolom. Lehet, hogy az adott programnyelv vagy monitorprogram úgy kéri a bevitelt, hogy a legalacsonyabb bit van bal oldalon, de az itt is csak egy kommunikációs kérdés, a hardverhez nincs köze.

2016. júl. 2. 00:06
Hasznos számodra ez a válasz?
 3/8 anonim ***** válasza:

Röviden: A bájtsorrend lehet változó (LE, BE), a bitsorrend mindig ugyanaz, "bal" oldalt az MSB.


(Nyilván a memóriában nincs értelme bitsorrendről beszélni, ha egyszer bájtonként címezhető, legalábbis szoftveresen nincs)

2016. júl. 2. 17:00
Hasznos számodra ez a válasz?
 4/8 Hominida ***** válasza:

A címbusz byte-onként hivatkozik a memóriára, de az egyes bitek gyakran hordoznak külön-külön információt, ilyenkor ezek elérése egyenként is szükséges. A programnyelvekben lehetnek erre külön utasítások, de végeredményben vagy maszkolással, vagy léptetéssel történik a dolog. Ezekhez viszont fontos tudni azt, hogy az adott nyelv a bitsorrendet hogyen állapítja meg.


De ez nyelvfüggő probléma, még ha az a nyelv a gépi kód is, hardverszinten nem értelmezhető, nincs jelentősége.

2016. júl. 2. 17:14
Hasznos számodra ez a válasz?
 5/8 A kérdező kommentje:

A C nyelv alapjait tanulom Stephen G. Kochan Programfejlesztés C nyelven című könyvéből, az alábbi feladat kavart meg:

Írjuk meg a bitpat_get függvényt, amely az első paramé-terként megadott (előjel nélküli egész) számból kiolvas egy bitmintát! Három paramétere legyen a függvénynek: az első legyen egy unsigned int, a második legyen egy egész szám, amely a kívánt bitminta kezdőbitjét tartalmazza, a harmadik pedig adja meg a kiemelendő bitek számát. A baloldali bit sorszáma legyen a nulladik. Olvassuk ki az első paraméter kívánt bitjeit! Például a

bitpat_get(x,0,3)

utasításnál olvassuk ki az x három baloldali bitjét, valamint a

bitpat_get(x,3,5)

hívásával olvassuk ki az x szám (balról) negyedik bitjétől kezdve öt bitet.

2016. júl. 2. 19:10
 6/8 anonim ***** válasza:

Gondolom nem lövök le nagy poént, talán ez segít:


int bitpat_get(unsigned data, int index, int count) {

int bits = sizeof(int)*8; // masszív egyszerűsítés

int shift = bits-start-count;

int mask = UINT_MAX >> (bits-count);

return (data >> shift) & mask;

}


Ezek a műveletek (mint úgy általában mind, amit írsz) a processzorban hajtódnak végre, így itt nem kell törődnöd a BÁJTsorrenddel.

2016. júl. 2. 22:25
Hasznos számodra ez a válasz?
 7/8 A kérdező kommentje:
Kicsit bővebben. Elfelejtettem említeni, egy korábbi feladatban meg kellet írni egy olyan függvényt, ami egy adott egész típus bitszámát határozza meg. Ezt használtam sizeof helyett.
2016. júl. 3. 21:46
 8/8 anonim ***** válasza:

"Kicsit bővebben."


Már hogy te, vagy én?


"Ezt használtam sizeof helyett."


Ezek szerint sikerült megírni?

Mert ha csak ennyi volt vele a problémád, hogy bájtonként meg kell-e fordítani a biteket, vagy nem (nem), akkor kész is vagy.

2016. júl. 3. 22:39
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!