101. változó: A számítógép ismerete

Sajnos láttam, hogy nem sokan akarják megtanulni programozni ezt a 2018-as évet, de még akkor is, ha csak elolvastam volna előző cikk egy ember, és egy kis idő elteltével képes elköteleződést küldeni egy ingyenes szoftverprojektre, elégedett lennék a munkámmal 🙂

Azok számára, akik szeretik a biztonságot, ígérem, hogy a következő bejegyzés a biztonságról szól post, így mindenki örül, ha valaki mást akar tanulni (például git, szerver adminisztráció vagy mit tudok: p), vagy megjegyzést fűzhet valamilyen más témához. erre nem lehet egyszerűen válaszolni a megjegyzés rovatban, tudassa velem, és meglátjuk, hogyan tudjuk működtetni 😉

Nos, ha most a dolgunkra térünk, akkor korábban a gépelésről beszéltünk, és hogy ennek köze volt ahhoz, ahogyan a változókat elmentjük egy programba, most áttekintjük egy kicsit, mi történik belül, és remélhetőleg elég tiszta.

Darabok

Azt hiszem, ez egy olyan téma, amelyhez mindig hozzányúlok, amikor a programozásról írok, ez minden bizonnyal elbűvöl, és sok minden megértésében segített, most megpróbálok egy kicsit elmagyarázni, hogy vannak, hogyan olvassák őket és mire valók 🙂

Gondolj egy villanykapcsolóra, amikor az áramkör zárva van, akkor a 0 a képernyőn, amikor megváltoztatjuk a kapcsoló helyzetét, mert a 1🙂 egyszerű, nem?

Most a 0 és egy 1 Sok mindent jelenthetnek, minden a kreativitástól függ, amellyel felveszed. Tegyük fel, hogy szeretném tudni, hogy valaki Északra vagy Délre megy-e, 1 jelentheti észak és 0, mondjuk, mondjuk azt akarom tudni, hogy valaki férfi vagy nő, 1 lehet férfi és 0, nő 🙂. Most szeretném tudni, hogy ez a személy fiatal vagy idős (> 22), 0 jelenthet fiatal és 1, magasabb. Képzeljük tovább ... Van háziállatod? 1 Azt mondanám, hogy igen 0 Nemet mondanék Most azt akarom, hogy olvassa el velem a következő sort:

1001

Ez a rövid utat mondani ...

Una jóven mujer de no más de 22 años se dirige al norte acompañada de su mascota.

ami nagyon különbözik a következőktől:

0110 o Un hombre con más de 22 años de edad se dirige solo hacia el sur.

Bytes

Most menjünk egy lépéssel tovább, tanuljuk meg a bájtok olvasását. A bájt a 8 bites szekvencia, amelyeket jobbról balra és mindegyik felolvas 1 erejét képviseli 2 emelt a n ahol n a bit helyzete. Mivel kínaiul hangzik, tegyünk egy kis példát 🙂

01001011 Megvan ez a bájt, most megyünk jobbról balra (<-). Fentről lefelé fogom őket tenni, hogy meg tudjam írni a jelentését:

1: a bit, amikor a helyzetben van 0 azt jelzi, hogy a következő 2 értéket nulla vagy 2^0. Ez a jól tudjuk, hogy egyenértékű 1.

1: a második bit, most a helyzet 12^1 ami ugyanaz, mint mondani 2

0: harmadik bit ... ennek kellene lennie 2^2, de mivel nincs bekapcsolva, hagyni fogjuk 0

1: negyedik bit, 2^3 u 8 ????

0: ugyanaz, mint a 0

0: Egyéb 0

1: most bent vagyunk 2^6 o 64

és végül 0 , már tudjuk, mit jelent 🙂 most hozzáadjuk az eredményeket, és összehasonlítjuk az alábbi táblázattal 🙂 75 tehát keressük meg az oszlopban Decimális és meglátjuk, mi jelenik meg Faszén

Az ascii tábla képeredménye

Van egy K!! Gratulálunk, már tudod, hogyan kell binárisan olvasni 🙂 De a legnyálkásabbak talán észrevették, hogy tizedes számot is kaptunk, és ennek van határa (amikor az összes érték 1) Ez a határ a számban található 255.

szó

Most már többen megmondják, de mi van, ha nagyobb számra van szükségem, mint 255? vagy hol találok más karaktereket, például a japánokat? Nos, a válasz egyszerű, állítsuk össze 2 bytes. Most, hogy kettőnk van, lehetséges a kombinációk lehetséges száma 2^16 o 65536 lehetséges eredmények, mint pl 0 ezek egyike, a lehető legnagyobb 65535. Csenget valakinek ez a szám? Emlékszik a linuxos rendszerek maximális számú portjára? Otthoni feladatot hagyok nekik 😉

Dupla szó és négy szó

Matematikai szempontból vannak speciális formátumok is, kettős szó tartalmazzák, mint azt sokan elképzelhették már 2 word o 4 bytes (o 32 bits) információ, ugyanaz, mint a következő:

11111111111111111111111111111111 vagy 0 a 4 294 967 295

Ezen a ponton sokakban kíváncsi lesz, hogy mi történik a negatív számokkal, vagyis valahol rájuk kell gondolni, igaz? Negatív szám tárolásához a processzor fejlesztői úgy döntöttek, hogy előjelként a bal oldalon lévő első bitet foglalják el. Ez azt jelenti, hogy ha az első bit 0 pozitív számról beszélünk, de ha igen 1 negatívunk van. Most nézze meg, miért olyan különlegesek a bitek, bármi lehet, amire vágyik 😀

De ez nyilvánvalóan egy ponttal kevesebbet hagy számunkra a szorzás elvégzésére! Tehát a mi0 a 4 294 967 295 válik:

-2,147,483,648 a +2,147,483,647

Most már sokunknak van 64 bits, és ez az a értéke négyszavas, értékeink között lehet 0 a 18 446 744 073 709 551 615. Ez nagy szám 🙂

Miért 8 bit?

Erre nem egyszer lesz kíváncsi, és a válasz a hardverben rejlik. A processzoroknak kezdettől fogva adatokra volt szükségük a műveletek végrehajtásához. Az adatokat a számítógép memóriájában tároljuk, és minden alkalommal, amikor a processzor igényli, az adatbuszokat használja a megszerzéséhez. Az ősi időkben ezek a buszok ciklusonként maximum 8 bitet tudtak kommunikálni, ez azt jelenti, hogy az adatok mozgatásának maximális és leghatékonyabb módja 8 bit csoportosítása és a processzornak való elküldés volt.

Az idő múlásával a mai napig a processzorok kifejlesztették a képességüket, hogy 16, 32 és… 64 bitet mozgassanak.

Mi köze van a gépeléshez?

Most vagyunk azon a részen, ahol mindennek értelme van 🙂 A gépelés egy olyan tulajdonság, amelyet a programozási nyelvek használnak ezeknek a memóriatereknek a megnevezésére. Minden változónak megvan a megfelelője az ilyen típusú adatok egyikében, függetlenül attól, hogy hívják őket. Ezek az úgynevezett primitív adattípusokMinden erősen tipizált nyelvnek megvan a maga elképzelése ezekről az értékekről és az általuk képviselt mennyiségről. Például a C-ben van a könyvtár limits.h amely megmutatja a primitív értékek maximális és minimális mennyiségét.

Nézzük meg, mi történik, ha megpróbáljuk megtörni az egyik értéket:

Saját. Christopher Diaz Riveros

A jobb oldalon vannak a fájl értékei limits.h és balra vettük az egyik ilyen értéket (unsigned short int) és a megfelelőnél magasabb számot rendeltünk hozzá. Ennek eredményeként a fordító figyelmeztet bennünket, hogy a memóriát helytelenül használjuk, mert a bináris formája 66666 nem fér el a bináris formában 65535. Ez egy leckéhez vezet bennünket teljesítmény amikor programozunk, ha az értéke nem fog sokat növekedni az idő múlásával, vagy ha nem igényel akkora értékeket, mint egy kétszeresére o négyszavasA megfelelő típus használata csökkenti a CPU által igényelt memória mennyiségét, ami nagyobb sebességet jelent az adatok megszerzésében, ha azokat jól kiszámítják.

A tolmács oldalon ez könnyebb a implicit konverziók. Cdefiniálunk egy változót olyan nyelveken, mint a javascript vagy a Python, az értelmező feladata annak megértése, hogy milyen típusú, és elegendő memóriaterületet allokál a műveletek végrehajtásához. Lássunk egy egyszerű példát 🙂

Saját. Christopher Diaz Riveros

Mint láthatja, nem kell elmagyaráznunk a python tolmácsnak a változónk típusát, mert ő felel a típus hozzárendeléséért és a memóriában való tárolásáért 🙂

Ismerje a változókat

Ez a használni kívánt nyelvtől és a megvalósítás típusától függ, de a programozás első lépése a használható változók megtanulása felhasználó vagy a rendszer által). Ez az első lépés a programozási létrán, és remélhetőleg a cikk elolvasása után jobban meg fogja ismerni a számítógép működését és az információk tárolását. Velem lesz a következő cikkig, ne felejtsd el elhagyni a megjegyzéseidet, hátha meg kell erősítened vagy kommentelned kell valamilyen konkrét kérdést. Egészségére


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.

  1.   Luis dijo

    Jól megírt, tömör és világos, ugyanakkor érdekes minden közönség számára. Szép munka.

    1.    ChrisADR dijo

      Köszönöm szépen, üdvözletem

  2.   János Jézus dijo

    Remek magyarázat. Gép vagy.

    1.    ChrisADR dijo

      Köszönöm

  3.   Ruben dijo

    Nagyon jól megmagyarázott köszönet

    1.    ChrisADR dijo

      Köszönöm, hogy teljes egészében elolvastad 🙂

  4.   Diego dijo

    Kiváló, köszönöm a közreműködést. És kihasználva a bináris kérdést, fennáll annak a lehetősége, hogy adjon nekünk egy osztályt IP-ről, alhálózatról stb. Megértem, hogy ez nem programozási kérdés, de ennek a kérdésnek a jó magyarázata mindig is függőben volt.
    Ismét köszönöm magyarázatát

    1.    ChrisADR dijo

      Helló, Diego, meg lehet tenni 🙂 igazat megvallva én sem foglalkoztam sokat a témával, de nincs jobb módszer a nyomozásra, mint ha valami cikket keresnénk róla. 🙂 A listára hagyjuk. mert a következő bejegyzésnek már van tárgya, és a keményedéssel fog foglalkozni. Üdvözlet 🙂

  5.   Peter dijo

    Kiváló tanár vagy, és nagylelkűen tanítod azt, amit tudsz. Gratulálok és köszönöm.

    1.    ChrisADR dijo

      Köszönöm szépen Pedro 🙂 Még mindig keresem a tanítási helyeket, sajnos itt Peruban nehéz, amikor csak műszaki szakmai végzettséged van, ezért most azt vizsgálom, hogy itt folytathatom-e az egyetemi tanulmányaimat, vagy ahol tudok ill. akár mesterdiplomára is jelentkezz a külföldön, aki tudja, lehet, hogy hamarosan valami ilyesmit adnak 🙂 de mindenképpen a tanítás teszi a napomat 🙂 Üdvözlet

  6.   valami dijo

    Nem olvastam a téma jobb magyarázatát, az első példa zseniális

    bár még nem hallottam ezt a szót (mint például a 16 bites változók), kettős szót vagy négy szót

    nem számít, hogy "már programozom", a bejegyzések érdekesek. Ha bármilyen probléma merül fel, a bejegyzésnek a C-t (határérték.h) kell használnia a változó méretek példaként. A C-nek van a legkevesebb specifikus specifikáció

    1.    ChrisADR dijo

      Helló valami 🙂 nagyon köszönöm szépen, útközben előálltam a példával 😛, mert minden bizonnyal ismert adatok azok számára, akik olvastak egy kicsit az Assembly-ből, és ezt a processzor megérti 🙂 hahaha minden bizonnyal a C nem túl specifikus, de szerintem ez annak köszönhető, hogy a hordozhatóság és az általa támogatott különböző architektúrák annyira változatosak voltak, hogy a C-nek minden típusú processzort be kell illesztenie ahhoz, hogy valóban hordozhatóak legyenek 🙂
      Üdvözlet és köszönet a megosztásért.

  7.   Sergio dijo

    Unnn érdekes lenne, ha ez az oktatósorozat rozsdán alapulna, azt hiszem, ez az egyik legérdekesebb nyelv, amelyet manapság fejlesztenek.
    Mögötte vagyok, de felismerem, hogy ez egy nehéz nyelv, de nagy jövővel rendelkezik ...
    Várom a következő cikkeket, nagyon érdekesek.
    Üdvözlet.

    1.    ChrisADR dijo

      Szia Sergio, minden bizonnyal érdekes lenne, hallottam, hogy a GNOME a Rust bevezetését tervezi a programcsomagjában, még nem láttam teljes terjedelmét, de áttérés következik.
      Ami a nyelveket illeti, én személy szerint még mindig a C-t tanulom, szeretném, hogy a következő néhány hónapban elkezdhessem a fejlesztést a kernelben, és inkább megtanulok néhány nyelvet alaposan megtanulni, mielőtt újakat kezdek áttekinteni, de mindenképpen kereshetek valami érdekeset, és tehetek néhány példát a Rust-ban, mivel a dokumentációja önmagában elég jól néz ki.
      Üdvözlet és köszönet a megosztásért 🙂

  8.   David dijo

    Nagyon jó magyarázatok, mind ebben a cikkben, mind az előzőben. Remélem, folytatja ezt a témát, amelyet nagyon érdekesnek tartok.

    1.    ChrisADR dijo

      Helló, David, remélem, hogy folytathatom az írást, és különösebben motiválom az embereket az ingyenes szoftverrel való részvételre. Olyan sok projekt és igény van most, hogy nagyszerű lenne néhány extra kezet fejleszteni 🙂
      Üdvözlet

  9.   Árverési csarnok dijo

    Tudna írni egy bejegyzést a Turing-gépről?

    1.    ChrisADR dijo

      Hello Mart! Azt hiszem, néhány megjegyzésben már korábban is érintettük, igaz? Biztos vagyok benne, hogy tudok valami érdekeset összeállítani a témában 🙂 nézzük meg, mi jöhet ki. Üdvözlet és köszönet az összes cikkem elolvasásáért, az első naptól a mai napig mindig nagyon érdekeltnek láttalak 🙂

  10.   ALLAN LARA dijo

    Hú, nagyon köszönöm, milyen jó magyarázat.

    Üdvözlet

    1.    ChrisADR dijo

      Köszönöm szépen Allan üdvözletét

  11.   ramon hidalgo dijo

    Elolvastam az előző bejegyzésedet! Nagyon köszönöm a magyarázatot, bár úgy gondolom, hogy soha nem fogom befejezni a szó megértését.

    1.    ChrisADR dijo

      Szia Ramon, nagyon köszönöm, hogy elolvastad mindkettőt. Ha bármilyen hasznát veszi, akkor a «szó» egy bájt evolúciója, olyan, mint a processzorok, mielőtt még 8-bit, 16-os után volt stb ... ez azért van, mert minden egyes alkalommal több helyre van szükségünk a feldolgozáshoz és jobb sebesség vagy erő ... a „szó” azért született, mert a „bájt” területe elmaradt, és ugyanez a „kettős” és „négyes” szónál is 🙂 a természetes evolúció az, ami erőt ad hozzá és tér a fejlődés folytatásához 🙂

      Üdvözlet

  12.   Névtelen dijo

    Ebben a 2018-ban megtanulok programozni igen vagy igen, köszönöm

    1.    ChrisADR dijo

      Örülök 🙂 próbálj meg nagyon !! Üdvözlettel

  13.   Guillermo dijo

    Nagyon köszönöm, csak így tovább. Már tudom, hogyan kell programozni, de várom a tanításait, hogy az autodidakta programozásom tele van rossz gyakorlatokkal.

    1.    ChrisADR dijo

      Köszönöm Guillermo 🙂 Nos, remélem, érdekes dolgokat talál a következő bejegyzésekben is 🙂 Üdvözlet

  14.   Edgar dijo

    Az egyszerű magyarázat mindig a legjobb .. kiváló ..
    Azt javaslom, hogy git ... a programozók számára alapvető, ha csapatként akarsz dolgozni, és rendbe teszed a munkád .. a verziók ..

    1.    ChrisADR dijo

      Nagyon igaz, Edgar, megpróbálok tartalmat közzétenni róla, bár elég nehéz újat mondani, mert a git dokumentáció már bőséges, és több dolgot már lefordítottak több nyelvre. Meglátom, mit tehetek, üdvözleteket és köszöneteket a megosztásért

  15.   tiririri dijo

    Helló, a 0 és 18 446 744 073 709 551 615 közötti szám megfelel-e a 64 bites tizedesértéknek, vagy más értékre utal? Nos, a 2 ^ 64 teljesítményének kiszámításakor az eredmény: 18 446 744 073 709 552 000.

    1.    ChrisADR dijo

      Szia Tiririri, azt hiszem, kerekítési problémád van, megpróbálhatod használni a parancsot bc? egy olyan programozási nyelv, amelyet a lehető legpontosabbra terveztek, miután belépett, csak meg kell tennie 2^64, talán ez megoldja, mivel tudassa velem, hogy ment, üdvözlet

      . A valós érték 18 446 744 073 709 551 616, de kivonunk 1-et, mert a 0 lehetséges értéknek számít 🙂

      1.    tiririri dijo

        Köszönöm, kiszámoltam, hogy egy teljesítményszámológéppel, amelyet a neten találtam (https://es.calcuworld.com/calculadoras-matematicas/potencias/) és ezt az eredményt adta nekem.
        És igen, már kipróbáltam a bc parancsot, és hatékonyan megadja nekem azt az értéket, amelyet leírtál.

  16.   tiririri dijo

    Helló még egyszer, a kép, ahol a limit.h könyvtárra hivatkozol, nagyon kicsi, és nem olvasható el (legalábbis nem tudtam elolvasni, mert úgy látom, hogy mindenki tette, úgy tűnik), és mivel nem értem Már nem folytatom az olvasást. Nem tudom, meg tudnád-e változtatni, remélem, nem zavartalak ezzel.

    1.    ChrisADR dijo

      Kipróbálhatja a mobil verziót, ezek egy kicsit tisztábban néznek ki, ez egy wordpress téma: / másrészt az összes C fejléc megtalálható a / usr / include / könyvtárban, ebben az esetben választhatja, hogy közvetlenül elolvassa, ha könnyebb 🙂 Megpróbálok nagyobb képet feltölteni, hátha segít helps

      1.    tiririri dijo

        Köszönöm, szerintem türelmesnek kellene lennem ebben, he he.

  17.   Katekyo dijo

    Köszönöm a cikket, mivel most egy kicsit jobban megértettem a nyelv változóit és reprezentációs tartományát, de most úgy gondolom, hogy el kell kezdenem a "stdint.h" könyvtár használatát, mivel azt javasolják, hogy használhassák a c programozásakor, mivel a megtanították a régi iskolának, mivel az emlékezet drága volt, és vigyázni kellett a használtakkal

    1.    ChrisADR dijo

      Nincs oka a Katekyo-nak, minden bizonnyal jobb a szokásos könyvtár használata, de biztosíthatlak arról, hogy jobb tudni, mi különbözteti meg az uint_least8_t az uint_fast8_t-től, és ezt a primitív adattípusok ismeretében érjük el, ami a cél volt bejegyzés Nagyon köszönöm a megjegyzést és a cikk elolvasását, üdvözletet

  18.   győztes dijo

    : Vagy mesteri magyarázat! Ismertem a fogalmak egy részét, de rengeteg új ismeretet szerzek ebből a bejegyzésből

    1.    ChrisADR dijo

      Nagyon köszönöm Victor 🙂 milyen jó, hogy a cikk segíthet, üdvözlet

  19.   Guille dijo

    Nagyon szerettem a Pythont, hogy megkönnyítse a programozást, láttam benne egy tanfolyamot http://zetcode.com/gui/pyqt4/ Imádtam a végső tetrist: http://zetcode.com/gui/pyqt4/thetetrisgame/
    Ezt a tetrist egy nyár folyamán retusáltam, hogy apránként, de nagyon szórakoztatóan tegyem fel a pontokat, a többjátékosokat és a zenét.

    1.    ChrisADR dijo

      Hello Guille, minden bizonnyal nagyon szórakoztató látni, hogy a szoftver, amin dolgozol, apránként növekszik 🙂 ez összehasonlíthatatlan élmény, és még inkább, ha valaki hasznosnak találja a fejlesztésedet, vagyis egy másik világból származik 😀 köszönöm szépen megosztásért 🙂

      1.    Guille dijo

        Amit csináltam, feltöltöttem (30 MB a zenéhez) http://guillermo.molleda.com/Tetris9.7z
        Be kell állítania egy másik kezdeti sebességet minden játékos számára, vagy ha egy új játék után újraindítja a pontokat,…, és három játékos van, akikkel két lányom játszhat velem. Még függőséget is okoz.