A könyvből amiből tanulok programozást, azt írja egy bájt 8 bitből áll, a bit pedig egy bináris számrendszerben lévő szám számjegye, ezt értem. Egy bináris szám "mindig" 8 bitből áll?
Pl ez is egy bináris szám: 0110, és 10-es számrendszerbeli értéke 6, de a szám mégsem 8 bitből áll. A könyvem a "ComputerBooks: Programozzunk Turbo Pascal nyelven c." könyv.
És ha van az h pl az integer típusú változók, 16 bites érték. Ez nem azt jelenti h a bináris szám 16 bitből áll, hanem hogy kettő 8 bites érték, ugye?
És az hogy jön ide hogy 16-, 32- vagy 64 bites rendszerre írt alkalmazás?
Köszönöm előre is, üdv.
A 101 010 010 000001010110100 1010101... is mind bináris számok. A bájt tulajdonképpen egy 8 bitet magába foglaló egység, azaz ilyen hosszú. Azért, hogy ne legyenek olyan adatok, amik csak egy bitesek, három bitesek, tizenegy bitesek, ezekkel nehéz lenne így dolgozni, tehát nyolc bitnyi adatokat elneveztek bájtoknak. amikkel könnyebbszámolni. 5 bitet is egy bájton tárolunk, 11 bitet meg két bájton (a nem kellő bitek 0-k maradnak).
Egy 16 bites integer 2 bájton van tárolva, konkrétan igen, kettő 8 bites érték, de ezeket nem lehet szétszedni, mert logikailag egymáshoz tartoznak (hiszen ha szétszednénk, a helyiértékek megváltoznának).
Egy 32 bites rendszerben a processzor egyszerre maximum 32 bittel tud dolgozni, ezért a 64 bit méretű adatokkal nem tud mit kezdeni.
szval:
1 bit ugyebár kétféle értékű lehet (1 és 0).
fent írtál egy bináris számot: 0110
ez a szám 4 bites (mivel 4 számjegyből áll), de akár felírhatod 8 bitként is: 00000110
egyszerűen kiegészíted nullákkal a számot, h 8 számjegyű legyen. szám értéke ezzel nem változik, ugyan úgy 6 lesz.
integer 2 byte-os (vagyis 16 bites). 2 a tizenhatodikon 65536. ennyi értéke van az integernek.
vagyis -32768 és 32767 közötti egész számok. (nullát is bele kell számolni, ezért lesz a legnagyobb értéke 32767).
Értem, logikus. Köszönöm szépen a válaszokat
Üdv
Én is leírom a választ máshogy megfogalmazva és korrigálom a tévedéseket/hibákat.
A boltba kapható személyi számítógépek úgy működnek hogy a legkisebb memóriaegység amit kezelni tud az a bájt, minden ennek az egész számú többszöröse.
"Ez nem azt jelenti h a bináris szám 16 bitből áll, hanem hogy kettő 8 bites érték, ugye?"
De ez egy 16 bites szám avagy 2 bájtos szám.
"Egy 16 bites integer 2 bájton van tárolva, konkrétan igen, kettő 8 bites érték, de ezeket nem lehet szétszedni, mert logikailag egymáshoz tartoznak (hiszen ha szétszednénk, a helyiértékek megváltoznának)."
Konkrétan akár lehet kezelni 2 egy bájtos számnak is csak akkor valami egészen mást kapok, hiszen csak bájtok sorozata a memória.
"Egy 32 bites rendszerben a processzor egyszerre maximum 32 bittel tud dolgozni, ezért a 64 bit méretű adatokkal nem tud mit kezdeni."
Nem, hogy ne tudna mit kezdeni? Egyébként is több 32 bites regisztere van a 32 bites CPU-nak ... Akár 8000 bit méretű adattal is tud mit kezdeni, nyilván nem egyszerre hanem darabokba.
"És az hogy jön ide hogy 16-, 32- vagy 64 bites rendszerre írt alkalmazás? "
Olyan rendszer pl a 16 bites ami 16 bit hosszú memóriacímekkel dolgozik vagyis nem tud elérni ("trükk" nélkül) 64 kbájtnál több memóriát, konkrétan régen voltak 16 bites processzorok is amik maximum 64 kbájt azaz 65536 bájt memóriát tudtak kezelni (feltéve ha volt benne annyi memória). Nem akarok belemenni a részletekbe, de nyilván a 32 bites az több memóriát képes kezelni a 64 bites még többet.
Köszönöm neked is, jópár dolog helyre került.
Üdv.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!