101. aldagaiak: zure ordenagailua ezagutzea

Zoritxarrez ikusi dut askok ez dutela 2018an programatzen ikasi nahi, baina nire irakurri besterik ez banuen ere aurreko artikulua Pertsona bat eta denbora pixka bat igaro ondoren software librearen proiektu baterako konpromisoa bidaltzeko gai izanik, pozik nago nire lanarekin 🙂

Segurtasuna maite dutenentzat, honako hau segurtasunari buruzko argitalpena izango dela agintzen dizut. Beraz, denak pozik egongo dira, inork beste zerbait ikasi nahi badu (git, zerbitzariaren administrazioa edo zer dakit: p) edo beste gai batzuei buruzko iruzkinak egin nahi baditu hori ezin da modu sinplean erantzun iruzkinen koadroan, jakinarazi iezaguzu eta nola lan egin dezakegun ikusiko dugu 😉

Beno, orain gure gauzara joaten bagara, aurretik idazteari buruz hitz egiten genuen, eta horrek gure aldagaiak programa batean gordetzeko moduarekin zerikusia zuela, orain barruan gertatzen dena apur bat berrikusiko dugu eta espero dezakegu nahikoa argi.

Bits

Nire ustez, programazioari buruz idazten dudanean beti ukitzen dudan gaia da, zalantzarik gabe liluratzen nauen zerbait da eta gauza asko ulertzen lagundu nau. Orain saiatuko naiz apur bat azaltzen nola dauden, nola irakurtzen diren eta zertarako balio dute 🙂

Pentsa ezazu argi etengailu bat, zirkuitua itxita dagoenean 0 pantailan, etengailuaren posizioa aldatzen dugunean, a delako 1🙂 erraza ezta?

Orain 0 eta 1 Gauza asko esan ditzakete, dena hartzen duzun sormenaren araberakoa da. Demagun norbait Iparraldera edo Hegoaldera joango den jakin nahi dudala, 1 iparraldea eta 0, sur 🙂 demagun norbait gizona edo emakumea den jakin nahi dudala, 1 gizona izan daiteke eta 0, emakumea 🙂. Orain jakin nahi dut pertsona hau gaztea edo zaharra den (> 22), 0 gazteak esan ditzake eta 1, altuagoa. Jarrai dezagun imajinatzen ... Ba al duzu maskotarik? 1 Baietz esango nuke, bitartean 0 Ezetz esango nuke Orain nirekin honako lerro hau irakurtzea nahi dut:

1001

Hau da esateko modu laburra ...

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

hau ez da oso desberdina:

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

bytes

Orain urrats bat gehiago eman dezagun, ikasi dezagun byte-ak irakurtzen. Byte bat 8 ​​biteko sekuentzia da, eskuinetik ezkerrera eta bakoitza irakurtzen direnak 1 potentzia bat adierazten du 2 igo n non n bit posizioa da. Txinatar dirudiela, eman dezagun adibide txiki bat 🙂

01001011 Byte hau dugu, orain eskuinetik ezkerrera joango gara (<-) goitik behera jarriko ditut haien esanahia idatzi ahal izateko:

1: bit-a posizioan dagoenean 0 honako 2 hauek zero izatera edo 2^0. Ezagutzen dugun putzu honen baliokidea da 1.

1: bigarren bit-a, orain posizioa 12^1 hau da, esatearen berdina 2

0: hirugarren bit ... hau izan beharko luke 2^2, baina aktibatuta ez dagoenez, utzi dezagun aktibatuta 0

1: laugarren bit, 2^3 u 8 🙂

0: bezalakoa 0

0: beste 0

1: orain gaude 2^6 o 64

eta, azkenik, 0 , badakigu zer esan nahi duen 🙂 orain gure emaitzak gehitu eta hurrengo taularekin alderatuko ditugu 🙂 Badugu 75 beraz, bila dezagun zutabean Hamartarra eta bertan agertzen dena ikusiko dugu char

Ascii taulako irudiaren emaitza

Badugu bat K!! Zorionak, dagoeneko badakizu bitarrez irakurtzen 🙂 Baina sagaruenak ohartu ahal izango dira zenbaki hamartarra ere lortu dugula eta muga duela (balio guztiak direnean 1) Muga hori zenbakian aurkitzen da 255.

Word

Orain batek baino gehiagok esango dit, baina zer baino zenbaki handiagoa behar badut 255? edo non aurki ditzaket japoniarrak bezalako beste pertsonaia batzuk? Beno, erantzuna sinplea da, bat egin dezagun 2 bytes. Bi dauzkagula, dauzkagun konbinazio kopurua 2^16 o 65536 emaitza posibleak, esaterako 0 horietako bat da, ahalik eta gehien 65535. Zenbaki horrek txirrina jotzen al du? Gogoratzen duzu Linux sistema bateko gehienezko portu kopurua? Etxerako lanak uzten ditut 😉

Hitz bikoitza eta lauko hitza

Matematikoagoa denerako formatu zehatzak ere badaude hitz bikoitza eduki, askok jada imajinatu duten moduan 2 word o 4 bytes (o 32 bits) informazioarekin, hau da:

11111111111111111111111111111111 to 0 a 4 294 967 295

Une honetan askok galdetuko dute zer gertatzen den zenbaki negatiboekin, hau da, nonbait ikusi behar diren, ezta? Zenbaki negatiboa gorde ahal izateko, prozesadoreen garatzaileek ezkerreko lehen bit-a okupatzea aukeratu zuten seinale balio gisa. Horrek esan nahi du lehenengo bit-a bada 0 zenbaki positiboaz ari gara, baina hala bada 1 negatiboa dugu. Orain ikusi zergatik diren bitak hain bereziak, nahi duzuna izan daitezke 😀

Baina horrek, jakina, biderketa bat egiteko posizio bat gutxiago uzten digu! Beraz, gure0 a 4 294 967 295 bihurtzen da:

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

Orain, gutako askok jada badugu 64 bits, eta hau da a-ren balioa quad hitza, bitarteko balioak izan ditzakegu 0 a 18 446 744 073 709 551 615. Kopuru handia da hori 🙂

Zergatik 8 bit?

Batek baino gehiagok galdetuko duen zerbait da hau, eta erantzuna hardwarean dago. Hasieratik, prozesadoreek datuak behar zituzten eragiketak egin ahal izateko. Datuak ordenagailuaren memorian gordetzen dira eta prozesadoreak eskatzen duen bakoitzean datu busak erabiltzen ditu eskuratzeko. Antzina, autobus horiek gehienez 8 bit ziklo bakoitzeko komunikatzen zituzten, hau da, datuak mugitzeko modurik handiena eta eraginkorrena 8 bitak multzokatzea eta prozesadorera bidaltzea zen.

Denboraren poderioz, gaur arte, prozesadoreek 16 bit, 32 bit eta ... 64 bit mugitzeko gaitasuna garatu dute.

Zer lotura du idazteak?

Dena zentzuzkoa den zatian gaude. Idazketa memoria-espazio horiek izendatzeko programazio-lengoaiek erabiltzen duten propietatea da. Aldagai guztiek dute datu mota horietako baten parekoa, deitu gabe. Hauek bezala ezagutzen dira datu mota primitiboakIndarrez idatzitako hizkuntza bakoitzak balio horien, eta adierazten duen kantitatearen kontzeptua du. Adibidez C-n liburutegia dugu limits.h horrek balio primitiboen gehieneko eta gutxieneko kopurua erakusten digu.

Ikus dezagun zer gertatzen den balioetako bat hausten saiatzen bagara:

Propioa. Christopher Diaz Riveros

Eskuinean fitxategiaren balioak ditugu limits.h eta ezkerrean balio horietako bat hartu dugu (unsigned short int) eta dagokiona baino zenbaki altuagoa esleitu dugu. Horren ondorioz, konpilatzaileak ohartarazi digu memoria modu bitarra delako erabiltzen ari garela 66666 ezin da forma bitarrean sartu 65535. Honek ikasgai batera eramaten gaitu errendimendu programatzen dugunean, zure balioa denboran zehar asko haziko ez bada edo ez badituzu bikoiztu o quad hitzaMota zuzena erabiltzeak PUZak eskatutako memoria murrizten du eta horrek datuak kalkulatzeko abiadura handiagoa suposatzen du ondo kalkulatzen bada.

Interpretearen aldetik hau errazagoa da bihurketa inplizituak. Cjavascript edo Python bezalako hizkuntzetan aldagai bat definitzen dugunean, interpretea arduratzen da zer motatakoa den ulertzeaz eta eragiketak burutzeko adina memoria espazio banatzeaz. Ikus dezagun adibide sinple bat 🙂

Propioa. Christopher Diaz Riveros

Ikus dezakezun bezala, ez diogu python interpreteari gure aldagai mota azaldu beharrik, mota bat esleitzeaz eta memorian gordetzeaz arduratzen baita.

Ezagutu zure aldagaiak

Hau erabiliko duzun hizkuntzaren eta inplementazio motaren araberakoa izango da, baina programatu ahal izateko lehen urratsa erabil ditzakezun aldagaiak ikastea da. Aldagaiak ulertu ondoren, ahal izateko moduan egongo zara informazioa modu eraginkor eta logikoan erabiltzeko (erabiltzaile batek edo sistemak emandakoa) gordetzeko. Hau da programazio eskaileraren lehen urratsa eta, zorionez, artikulu hau irakurri ondoren, zure ordenagailuak nola funtzionatzen duen eta informazioa nola gordetzen duen hobeto ulertuko duzu. Nirekin egongo da hurrengo artikulura arte. Gogoratu zure iruzkinak utzi puntu zehatz bat indartu edo iruzkindu behar duzun ikusteko. Animo


Artikuluaren edukia gure printzipioekin bat dator etika editoriala. Akats baten berri emateko egin klik hemen.

41 iruzkin, utzi zurea

Utzi zure iruzkina

Zure helbide elektronikoa ez da argitaratuko.

*

*

  1. Datuen arduraduna: Miguel Ángel Gatón
  2. Datuen xedea: SPAM kontrolatzea, iruzkinen kudeaketa.
  3. Legitimazioa: Zure baimena
  4. Datuen komunikazioa: datuak ez zaizkie hirugarrenei jakinaraziko legezko betebeharrez izan ezik.
  5. Datuak biltegiratzea: Occentus Networks-ek (EB) ostatatutako datu-basea
  6. Eskubideak: Edonoiz zure informazioa mugatu, berreskuratu eta ezabatu dezakezu.

  1.   Luis esan zuen

    Ongi idatzita, laburra eta argia, aldi berean interesgarria publiko guztientzat. Lan polita.

    1.    ChrisADR esan zuen

      Mila esker, agur 🙂

  2.   Juan Jesus esan zuen

    Azalpen bikaina. Makina bat zara.

    1.    ChrisADR esan zuen

      Eskerrik asko

  3.   Ruben esan zuen

    Oso ondo azaldu eskerrik asko

    1.    ChrisADR esan zuen

      Eskerrik asko osorik irakurtzeagatik 🙂

  4.   Diego esan zuen

    Bikain, eskerrik asko sarrera egiteagatik. Bitariko arazoa aprobetxatuz, IP, azpisare eta abar klase bat emateko aukera dago. Ulertzen dut ez dela programazio kontua, baina gai horren azalpen ona beti egon da zain.
    Berriro ere, eskerrik asko zure azalpenagatik

    1.    ChrisADR esan zuen

      Kaixo Diego, egin daiteke tell egia esan gaian ere ez naiz asko sartu, baina ez dago ikertzeko modu hoberik artikulu batean horri buruz partekatzeko zerbait bilatzea baino. List Zerrendarako utziko dugu hurrengo mezuak dagoeneko gaia duelako. eta gogortzeari aurre egingo dio. Agurrak 🙂

  5.   Peter esan zuen

    Irakasle bikaina zara, eta oso eskuzabala dakizuna irakasteko. Zorionak eta eskerrik asko.

    1.    ChrisADR esan zuen

      Mila esker Pedro 🙂 Oraindik irakasteko lekuen bila nabil. Zoritxarrez hemen Perun zaila da teknikari profesional titulua soilik duzunean; beraz, orain unibertsitateko ikasketak hemen jarraitzeko aukera edo ahal dudan tokian edo nahiz eta atzerriko masterra egin, nork daki, agian laster emango da horrelako zerbait 🙂 baina behin betiko irakaskuntzak nire eguna sortzen duen zerbait da 🙂 Agurrak

  6.   zerbait esan zuen

    Ez nuen gaiaren azalpen hobea irakurri, lehen adibidea bikaina da

    hitz hori (16 biteko aldagaiak bezala), hitz bikoitza edo lauko hitza entzun ez nuen arren

    berdin dio "dagoeneko programa dut", argitalpenak interesgarriak dira. Arazoren bat izango balitz, mezuak C (limits.h) tamaina aldagarrien adibide gisa erabiltzea da, C-k dagoen zehaztapen espezifiko txikiena du

    1.    ChrisADR esan zuen

      Kaixo zerbait 🙂 mila esker, adibidearekin batera etorri zait Assembly Muntaketa pixka bat irakurri dutenei buruzko datu ezagunak direlako, eta hori ulertzen du prozesadoreak 🙂 jajaja zalantzarik gabe C ez da oso zehatza, baina uste dut Hori dela eta eramangarritasuna eta onartzen dituen arkitektura desberdinak hain desberdinak izan dira, C-k prozesadore mota bakoitza benetan eramangarria izateko egokitu behar duelako.
      Agurrak eta eskerrik asko partekatzeagatik.

  7.   Sergio esan zuen

    Interesgarria litzateke tutorial sorta hau herdoilean oinarrituta egotea, gaur egun garatzen ari diren hizkuntza interesgarrienetako bat dela uste dut.
    Bere atzean nago, baina hizkuntza zaila dela aitortzen dut, baina etorkizun bikaina duena ...
    Zure hurrengo artikuluak espero ditut, benetan interesgarriak dira.
    Agurra.

    1.    ChrisADR esan zuen

      Kaixo Sergio, zalantzarik gabe interesgarria izango litzateke, entzun dut GNOMEk Rust bere programa multzoan ezartzeko asmoa duela, oraindik ez dut horren hedadura osoa ikusi, baina migrazio bat dator.
      Hizkuntzei dagokienez, pertsonalki C ikasten jarraitzen dut, hurrengo hilabeteetan kernelean garatzen hasi nahi dut eta nahiago dut hizkuntza batzuk sakonki ikasi berriak berrikusten hasi aurretik, baina zalantzarik gabe zerbait interesgarria bila dezaket eta adibide batzuk egin. Rust-en, bere dokumentazioak bere itxura nahiko ona baitu.
      Agurrak eta eskerrik asko partekatzeagatik 🙂

  8.   David esan zuen

    Oso azalpen onak, bai artikulu honetan bai aurrekoan. Oso interesgarria iruditzen zaidan gai honekin jarraitzea espero dut.

    1.    ChrisADR esan zuen

      Kaixo David, espero dut idazten jarraitu ahal izatea eta batez ere jendea motibatzea software librearekin parte hartzera. Hainbeste proiektu eta behar dira orain garatzeko esku gehiago izatea oso ona izango litzatekeela 🙂
      dagokionez

  9.   Mart esan zuen

    Turing makinari buruzko argitalpenik egin al zenezake?

    1.    ChrisADR esan zuen

      Kaixo Mart 🙂 Uste dut iruzkin batzuetan lehenago ukitu dugula, ezta? Ziur nago gaiaren inguruan zerbait interesgarria bildu dezakedala. Ea zer atera daitekeen. Agurrak eta eskerrik asko nire artikulu guztiak irakurtzeagatik, lehenengo egunetik gaur arte nahiko interesatuta ikusi zaitut 🙂

  10.   ALLAN LARA esan zuen

    Aupa, mila esker zer azalpen ona.

    dagokionez

    1.    ChrisADR esan zuen

      Mila esker Allan 🙂

  11.   Ramon Hidalgo esan zuen

    Zure aurreko mezua irakurri dut! Mila esker azalpenagatik, nahiz eta uste dut ez dudala inoiz hitza ulertzen amaituko.

    1.    ChrisADR esan zuen

      Kaixo Ramon 🙂 mila esker biak irakurtzeagatik. Erabilera badu, «hitza» byte baten eboluzioa da, prozesadoreak bezalakoa da, 8 bit zeuden aurretik, 16 bit ondoren, etab ... hori gertatzen da espazio gehiago eskatzen dugun bakoitzean prozesua eta abiadura edo potentzia hobea ... 'hitza' jaio zen 'byte'-ren espazioa laburra izan zelako, eta gauza bera' bikoitza 'eta' quad 'hitzarekin 🙂 bilakaera naturala da boterea gehitzea eragiten diguna eta espazioa garatzen jarraitzeko 🙂

      dagokionez

  12.   Anonymous esan zuen

    2018 honetan bai edo bai programatzen ikasten dut, eskerrik asko

    1.    ChrisADR esan zuen

      Pozik nago hard gogor saiatu !! Animo

  13.   Guillermo esan zuen

    Mila esker, segi horrela. Badakit nola programatu baina zure irakaspenen zain nago, nire programazio autodidakta praktika txarrez beteta dagoela.

    1.    ChrisADR esan zuen

      Eskerrik asko Guillermo 🙂 Beno espero dut gauza interesgarriak aurkituko dituzula hurrengo mezuetan ere 🙂 Agurrak

  14.   Edgar esan zuen

    Azalpen erraza beti da onena .. bikaina ..
    Git proposatuko nuke ... programatzaileentzat oinarrizkoa da taldean lan egin eta zure lana ordenatu nahi duzunean .. bertsioak ..

    1.    ChrisADR esan zuen

      Oso egia, Edgar, horri buruzko edukia argitaratzen saiatuko naiz, nahiz eta zerbait berria esatea nahiko zaila den, git dokumentazioa ugaria baita eta hainbat gauza hainbat hizkuntzatara itzulita daudelako. Zer egin dezakedan ikusiko dut, agurrak eta eskerrak partekatzeagatik

  15.   Tiririri esan zuen

    Kaixo, 0tik 18ra 446 744 073 709 551 615 zenbakia 64 biteko balio hamartarrarekin bat dator edo beste balio bati dagokio? Beno, 2 ^ 64-ren potentzia kalkulatuta, lortuko dudan emaitza hau da: 18 446 744 073 709 552.

    1.    ChrisADR esan zuen

      Kaixo Tiririri, biribiltzeko arazoren bat duzula uste dut, komandoa erabiltzen saia zaitezke bc? programazio lengoaia da, ahalik eta zehatzena izan dadin diseinatuta dagoena, behin barnean egitea besterik ez da egin behar 2^64, agian horrek konponduko du nola joan den jakitean, agurrak

      . Benetako balioa 18 446 744 073 709 551 616 da, baina 1 kentzen ari gara 0 balizko balio gisa kontatzen delako 🙂

      1.    Tiririri esan zuen

        Eskerrik asko, hori kalkulatu dut sarean aurkitu nuen potentzia kalkulagailuarekin (https://es.calcuworld.com/calculadoras-matematicas/potencias/) eta hori izan zen eman zidan emaitza.
        Bai, dagoeneko bc komandoa probatu nuen, eta horrek idatzitako balioa ematen dit.

  16.   Tiririri esan zuen

    Kaixo berriro ere, limit.h liburutegia aipatzen duzun irudia oso txikia da eta ezin da irakurri (nik behintzat ezin izan dut irakurri, denek hala egin dutela ikusten baitut, antza denez), eta ulertzen ez dudanez ez dut gehiago jarraitzen irakurtzen. Ez dakit alda zenezakeen, espero dut horrekin trabarik ez izatea.

    1.    ChrisADR esan zuen

      Mugikorreko bertsioa probatu dezakezu, itxura apur bat argiagoa du, wordpress gaia da: / bestalde, C goiburu guztiak / usr / include / atalean aurki ditzakezu; kasu honetan, zuzenean irakurtzea aukera dezakezu errazagoa da 🙂 Saiatuko naiz irudi handiagoa igotzen laguntzen duen ala ez ikusteko

      1.    Tiririri esan zuen

        Eskerrik asko, honekin pazientzia izan beharko nukeela uste dut, he he he.

  17.   Katekyo esan zuen

    Eskerrik asko artikuluagatik, geroztik hizkuntza baten irudikapenaren aldagaiak eta sorta apur bat hobeto ulertu ditut, baina orain uste dut "stdint.h" liburutegia erabiltzen hasi beharko nukeela, c-en programatzerakoan erabiltzea gomendatzen baitute Memoria preziatua zenetik eskola zaharra irakatsi zidaten eta kontuz ibili behar zen erabiltzen zenarekin

    1.    ChrisADR esan zuen

      Ez dago Katekyo, zalantzarik gabe, hobe da liburutegi estandarra erabiltzea, baina ziurtatu dezaket hobe dela jakitea zer bereizten duen uint_least8_t uint_fast8_t batetik eta hori lortzen dela datu mota primitiboak ezagututa, horixe zen mezua 🙂 Mila esker iruzkinagatik eta artikulua irakurtzeagatik, agurrak

  18.   victor esan zuen

    : Edo azalpen maisua! Kontzeptuen zati bat ezagutzen nuen, baina ezagutza berri asko jasotzen ditut mezu honetatik

    1.    ChrisADR esan zuen

      Mila esker Victor 🙂 Zein ona den artikuluak lagungarria izan daitekeela, agurrak

  19.   Guille esan zuen

    Oso gustuko nuen Python programazioa errazteko, ikastaro bat ikusi nuen http://zetcode.com/gui/pyqt4/ Azken tetris hau maite nuen: http://zetcode.com/gui/pyqt4/thetetrisgame/
    Tetris hau udan ukitu nuen puntuak, jokalari anitzekoa eta musika jartzeko, pixkanaka, baina oso entretenigarria.

    1.    ChrisADR esan zuen

      Kaixo Guille, zalantzarik gabe oso dibertigarria da lantzen ari zaren softwarea pixkanaka hazten ikustea experience esperientzia paregabea da, eta are gehiago norbaitek garatzen ari zaren hori erabilgarria dela aurkitzen duenean, hori beste mundu batekoa da 😀 mila esker partekatzeagatik

      1.    Guille esan zuen

        Egindakoa kargatu dut (30Mb musikarako) http://guillermo.molleda.com/Tetris9.7z
        Jokalari bakoitzaren hasierako abiadura desberdina konfiguratu behar duzu edo partida berri baten ondoren puntuak berrabiarazten badituzu, ... eta nire bi alabek nirekin jokatzeko hiru jokalari daude. Mendekotasuna sortzen du.