Muuttujat 101: Tietokoneesi tunteminen

Valitettavasti olen nähnyt, että monet eivät halua oppia ohjelmoimaan tätä vuotta 2018, mutta vaikka olisin vain lukenut artículo etupäätä henkilö ja pystyy hetken kuluttua lähettämään sitoumuksen ilmaiseen ohjelmistoprojektiin, olisin tyytyväinen työhöni 🙂

Niille, jotka rakastavat tietoturvaa, lupaan teille, että seuraava on viesti turvallisuustehtävistä, joten kaikki ovat onnellisia, jos joku haluaa oppia jotain muuta (kuten git, palvelimen hallinta tai en tiedä: p), tai kommentoida muuta aihetta johon ei voida vastata yksinkertaisella tavalla kommenttikentässä, kerro minulle ja näemme kuinka voimme tehdä sen 😉

No, nyt kun menemme asiaamme, aiemmin puhuimme kirjoittamisesta ja että tämä liittyi tapaan, jolla tallennamme muuttujamme ohjelmassa, nyt tarkastelemme hieman mitä sisällä tapahtuu ja toivottavasti se voi olla tarpeeksi selkeä.

Bittiä

Luulen, että tämä on aihe, jota kosketan aina kirjoittaessani ohjelmoinnista, se on varmasti jotain, joka kiehtoo minua ja joka on auttanut minua ymmärtämään monia asioita. Yritän nyt selittää vähän, miten he ovat, miten heitä luetaan ja mihin ne ovat 🙂

Ajattele valokytkintä, kun piiri on suljettu, meillä on 0 ruudulla, kun vaihdamme kytkimen asentoa, koska a 1🙂 yksinkertainen, eikö olekin?

Nyt a 0 ja 1 Ne voivat tarkoittaa monia asioita, kaikki riippuu luovuudesta, jolla otat sen. Oletan, että haluan tietää, onko joku menossa pohjoiseen vai etelään, 1 voi tarkoittaa pohjoista ja 0, sur 🙂 sanotaan, että haluan tietää, onko joku mies vai nainen, 1 se voi olla mies ja 0, nainen 🙂. Nyt haluan tietää, onko tämä henkilö nuori vai vanha (> 22), 0 voi tarkoittaa nuoria ja 1, korkeampi. Kuvitellaan jatkuvasti ... Onko sinulla lemmikkejä? 1 Sanoisin kyllä, kun 0 Sanoisin ei Nyt haluan sinun lukevan seuraavan rivin kanssani:

1001

Tämä on lyhyt tapa sanoa ...

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

mikä on hyvin erilainen kuin:

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

Tavua

Mennään nyt askeleen pidemmälle, opitaan kuinka tavuja luetaan. Tavu on 8 bitin sarja, joka luetaan oikealta vasemmalle ja kukin 1 edustaa voimaa 2 korotettu n Donde n on kärjen sijainti. Koska se kuulostaa kiinalaiselta, laitetaan pieni esimerkki 🙂

01001011 Meillä on tämä tavu, nyt aiomme siirtyä oikealta vasemmalle (<-) aion laittaa ne ylhäältä alas voidakseni kirjoittaa niiden merkityksen:

1: terä, kun se on paikallaan 0 osoittaa, että seuraavat 2 on nostettu nollaan tai 2^0. Tämä tiedämme hyvin 1.

1: toinen bitti, nyt asento 12^1 mikä on sama kuin sanominen 2

0: kolmas bitti ... tämän pitäisi olla 2^2, mutta koska se ei ole päällä, aiomme jättää sen päälle 0

1: neljäs bitti, 2^3 u 8 🙂

0: sama kuin 0

0: muu 0

1: nyt olemme sisään 2^6 o 64

ja lopuksi 0 , tiedämme jo mitä se tarkoittaa 🙂 nyt aiomme lisätä tulokset ja verrata niitä seuraavaan taulukkoon 🙂 Meillä on 75 joten etsimme sitä sarakkeesta Desimaali ja näemme, mikä näkyy Char

Kuvan tulos ascii-taulukosta

Meillä on yksi K!! Onnittelut, tiedät jo kuinka lukea binäärisenä 🙂 Mutta kaikkein sagakaimmat ovat huomanneet, että olemme saaneet myös desimaaliluvun ja että sillä on raja (kun kaikki arvot ovat 1) Tämä raja löytyy lukumäärästä 255.

sana

Nyt useampi kuin yksi kertoo minulle, mutta entä jos tarvitsen numeron, joka on suurempi kuin 255? tai mistä löydän muita merkkejä kuten japanilaiset? No, vastaus on yksinkertainen, kootaan yhteen 2 bytes. Nyt kun meillä on kaksi, mahdollinen yhdistelmien määrä on 2^16 o 65536 mahdolliset tulokset, kuten 0 on yksi niistä, suurin mahdollinen on 65535. Soittaako tämä numero kenellekään kelloa? Muistatko enimmäismäärän portteja linux-järjestelmässä? Jätän heille kotitehtävät 😉

Kaksinkertainen sana ja nelisana

Matemaattisemmaksi on olemassa myös erityisiä muotoja, kaksinkertainen sana sisältää, kuten monet ovat jo kuvitelleet 2 word o 4 bytes (o 32 bits) tietoa, sama kuin sanomalla:

11111111111111111111111111111111 ja 0 a 4 294 967 295

Tässä vaiheessa monet ihmettelevät, mitä tapahtuu negatiivisilla luvuilla, toisin sanoen jossain niitä on harkittava, eikö? Negatiivisen luvun tallentamiseksi prosessorikehittäjät päättivät käyttää ensimmäistä vasemman bitin merkkiarvona. Tämä tarkoittaa, että jos ensimmäinen bitti on 0 puhumme positiivisesta luvusta, mutta jos on 1 meillä on negatiivinen. Katso nyt, miksi bitit ovat niin erikoisia, että ne voivat olla mitä haluat you

Mutta tämä jättää meille tietysti yhden aseman vähemmän kertolaskun suorittamiseksi! Joten meidän0 a 4 294 967 295 tulee:

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

Nyt monilla meistä on jo 64 bits, ja tämä on a: n arvo nelisana, arvot voivat vaihdella 0 a 18 446 744 073 709 551 615. Se on iso numero 🙂

Miksi 8-bittinen?

Tätä useampia kuin yksi saattaa miettiä, ja vastaus on laitteistossa. Alusta alkaen prosessorit tarvitsivat tietoja voidakseen suorittaa toimintoja. Tiedot tallennetaan tietokoneen muistiin, ja aina kun prosessori sitä tarvitsee, se käyttää dataväyliä saadakseen sen. Muinaisina aikoina nämä väylät pystyivät kommunikoimaan enintään 8 bittiä sykliä kohti, mikä tarkoittaa, että suurin ja tehokkain tapa siirtää dataa oli ryhmittää 8 bittiä ja lähettää ne prosessorille.

Ajan myötä tähän päivään asti prosessorit ovat kehittäneet kyvyn siirtää 16 bittiä, 32 bittiä ja… 64 bittiä.

Mitä tekemistä sillä on kirjoittamisen kanssa?

Olemme nyt siinä osassa, jossa kaikella on järkeä 🙂 Kirjoitus on ominaisuus, jota ohjelmointikielet käyttävät näiden muistitilojen nimeämiseen. Kaikilla muuttujilla on vastaavuus yhdessä tällaisista tiedoista riippumatta siitä, mitä niitä kutsutaan. Nämä tunnetaan nimellä primitiiviset tietotyypitJokaisella voimakkaasti kirjoitetulla kielellä on käsitys näistä arvoista ja niiden edustamasta määrästä. Esimerkiksi C: ssä meillä on kirjasto limits.h joka osoittaa meille primitiivisten arvojen suurimman ja pienimmän määrän.

Katsotaanpa, mitä tapahtuu, jos yritämme rikkoa yhtä arvoista:

Oma. Christopher Diaz Riveros

Oikealla meillä on tiedoston arvot limits.h ja vasemmalla olemme ottaneet yhden näistä arvoista (unsigned short int) ja olemme antaneet numeron, joka on suurempi kuin vastaava. Tämän seurauksena kääntäjä varoittaa meitä siitä, että käytämme muistia väärin, koska 66666 ei sovi binaarimuodossa 65535. Tämä johtaa meidät oppituntiin vuonna suorituskyky kun ohjelmoimme, jos arvo ei tule kasvamaan paljon ajan myötä tai jos et vaadi yhtä suuria arvoja kuin kaksinkertainen o nelisanaOikean tyypin käyttö vähentää CPU: n pyytämän muistin määrää, mikä tarkoittaa suurempaa nopeutta saada tietoja, jos se on hyvin laskettu.

Tulkin puolella tämä on helpompaa implisiittiset konversiot. CMääritämme muuttujan kielillä, kuten javascript tai Python, tulkin tehtävänä on ymmärtää minkä tyyppinen se on, ja varata riittävästi muistitilaa toimintojen suorittamiseen. Katsotaanpa yksinkertainen esimerkki 🙂

Oma. Christopher Diaz Riveros

Kuten näette, meidän ei tarvitse selittää python-tulkille muuttujamme tyyppiä, koska se huolehtii tyypin määrittämisestä ja sen tallentamisesta muistiin 🙂

Tunne muuttujat

Tämä riippuu käyttämästäsi kielestä ja toteutuksen tyypistä, mutta ensimmäinen vaihe ohjelmoida on oppia muuttujat, joita voit käyttää use Kun ymmärrät muuttujat, pystyt pystymään käyttämään niitä tehokkaasti ja loogisesti tietojen tallentamiseen (toimitetaan käyttäjän tai järjestelmän kautta). Tämä on ensimmäinen askel ohjelmointitikkailla, ja toivottavasti tämän artikkelin lukemisen jälkeen saat paremman käsityksen siitä, miten tietokoneesi toimii ja miten se tallentaa tietoja. Se on kanssani seuraavaan artikkeliin asti, muista jättää kommenttisi nähdäksesi, onko sinun vahvistettava tai kommentoitava tiettyä kohtaa. Kippis


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.

  1.   Luis dijo

    Hyvin kirjoitettu, ytimekäs ja selkeä, samalla mielenkiintoinen kaikille yleisöille. Hyvää työtä.

    1.    ChrisADR dijo

      Paljon kiitoksia, terveiset 🙂

  2.   Johannes Jeesus dijo

    Suuri selitys. Olet kone.

    1.    ChrisADR dijo

      Kiitos

  3.   Ruben dijo

    Erittäin hyvin selitetty kiitos

    1.    ChrisADR dijo

      Kiitos, että luet sen kokonaan 🙂

  4.   Diego dijo

    Erinomainen, kiitos panoksesta. Binaariongelmaa hyödyntämällä on mahdollista, että voit antaa meille luokan IP, aliverkon jne. Ymmärrän, että se ei ole ohjelmointikysymys, mutta asian hyvä selitys on aina ollut vireillä.
    Jälleen kiitos selityksestäsi

    1.    ChrisADR dijo

      Hei Diego, se voidaan tehdä 🙂 kertoa totuus, en ole myöskään mennyt aiheeseen paljon, mutta ei ole parempaa tapaa tutkia kuin etsimällä jotain jakamaan siitä artikkelista 🙂 Jätämme sen luetteloon, koska seuraavassa viestissä on jo aihe ja se käsittelee kovettumista. Terveisiä 🙂

  5.   Pietari dijo

    Olet erinomainen opettaja ja erittäin antelias opettaaksesi mitä tiedät. Onnittelut ja kiitos.

    1.    ChrisADR dijo

      Paljon kiitoksia Pedro 🙂 Etsin edelleen opetuspaikkoja, valitettavasti täällä Perussa on vaikeaa, kun sinulla on vain tekninen ammattitutkinto, joten nyt tarkastelen mahdollisuutta jatkaa yliopisto-opintojani täällä tai missä voin tai jopa hakea maisteriksi ulkomaalainen, joka tietää, ehkä pian jotain sellaista voidaan antaa 🙂 mutta opetus on ehdottomasti jotain, joka tekee päivästäni 🙂 Terveisiä

  6.   jotain dijo

    En ollut lukenut parempaa selitystä aiheesta, ensimmäinen esimerkki on loistava

    vaikka en ollut kuullut tuota sanaa (kuten 16-bittisiä muuttujia), kaksoissanaa tai nelisanaa

    riippumatta siitä, että "olen jo ohjelmoinut", viestit ovat mielenkiintoisia. Jos ongelmia ilmenee, postin on käytettävä C: tä (rajoitukset.h) muuttujien koon esimerkkinä. C: llä on vähiten olemassa olevaa spesifikaatiota

    1.    ChrisADR dijo

      Hei jotain 🙂 kiitos paljon, keksin esimerkin matkalla 😛, koska se on varmasti tunnettua tietoa niille, jotka ovat lukeneet vähän Assembly-tiedostoa, ja prosessori ymmärtää sen. 🙂 hahaha ei todellakaan ole kovin spesifinen, mutta mielestäni se on johtuen siitä, että siirrettävyys ja sen tukemat erilaiset arkkitehtuurit ovat olleet niin vaihtelevia, että C: n on mukautettava jokainen prosessorityyppi ollakseen todella kannettava 🙂
      Terveisiä ja kiitoksia jakamisesta.

  7.   Sergio dijo

    Olisi mielenkiintoista, jos tämä oppaiden sarja perustuisi ruosteeseen, mielestäni se on yksi mielenkiintoisimmista kielistä, joita kehitetään tänään.
    Olen hänen takanaan, mutta tiedän, että se on vaikea kieli, mutta jolla on suuri tulevaisuus ...
    Odotan innolla seuraavia artikkeleitasi, ne ovat todella mielenkiintoisia.
    Tervehdys.

    1.    ChrisADR dijo

      Hei Sergio, se olisi varmasti mielenkiintoista, olen kuullut, että GNOME aikoo toteuttaa Rustin ohjelmistopaketissaan, en ole vielä nähnyt heidän aikeitaan, mutta siirtyminen on tulossa.
      Kielten osalta olen itse vielä oppimassa C: tä, haluan pystyä aloittamaan kehityksen ytimessä seuraavien kuukausien aikana, ja haluan oppia muutama kieli perusteellisesti ennen kuin aloitan uusien kielten tarkastelun, mutta voin ehdottomasti etsiä jotain mielenkiintoista ja tehdä muutamia esimerkkejä Rustissa, koska sen dokumentaatio näyttää melko hyvältä yksin.
      Terveisiä ja kiitoksia jakamisesta 🙂

  8.   David dijo

    Erittäin hyvät selitykset sekä tässä että edellisessä artikkelissa. Toivon, että jatkat tätä aihetta, joka on mielestäni erittäin mielenkiintoinen.

    1.    ChrisADR dijo

      Hei David, toivon myös voivani jatkaa kirjoittamista ja erityisesti motivoida ihmisiä osallistumaan ilmaisten ohjelmistojen kanssa, projekteja ja tarpeita on nyt niin paljon, että muutaman ylimääräisen käden kehittäminen olisi hienoa 🙂
      terveiset

  9.   Kauppapaikka dijo

    Voisitko kirjoittaa viestin Turingin koneesta?

    1.    ChrisADR dijo

      Hei Mart 🙂 Luulen, että joissakin kommenteissa olemme koskettaneet sitä aiemmin, eikö? Voin varmasti koota jotain mielenkiintoista aiheesta 🙂 Katsotaanpa, mitä voi tulla ulos. Terveisiä ja kiitoksia kaikkien artikkeleiden lukemisesta ensimmäisestä päivästä päivään asti olen aina nähnyt sinut melko kiinnostuneena 🙂

  10.   ALLAN LARA dijo

    Vau, kiitos paljon kuinka hyvä selitys.

    terveiset

    1.    ChrisADR dijo

      Paljon kiitoksia Allan 🙂 terveisin

  11.   ramon hidalgo dijo

    Luin edellisen viestisi! Paljon kiitoksia selityksestä, vaikka luulen, etten koskaan saa loppuun ymmärtämään sanaa.

    1.    ChrisADR dijo

      Hei Ramon 🙂 kiitos paljon molempien lukemisesta. Jos siitä on mitään hyötyä, «sana» on tavun kehitys, se on kuin prosessorit, ennen kuin 8-bittiä, 16-bittiä jne. Oli ... tämä johtuu siitä, että joka kerta tarvitsemme enemmän tilaa prosessointiin ja paremman nopeuden tai voima ... 'sana' syntyi, koska 'tavun' tila jäi alle, ja sama 'kaksinkertaisen' ja 'nelosen' sanan kanssa 🙂 se on luonnollinen evoluutio, joka saa meidät lisäämään voimaa ja tilaa kehityksen jatkamiseksi 🙂

      terveiset

  12.   anonyymi dijo

    Tänä vuonna 2018 opin ohjelmoimaan kyllä ​​tai kyllä, kiitos

    1.    ChrisADR dijo

      Olen iloinen, yritä kovasti! Kippis

  13.   Guillermo dijo

    Paljon kiitoksia, jatka sitä. Tiedän jo kuinka ohjelmoida, mutta odotan opetustasi, että itseopettama ohjelmointi on täynnä huonoja käytäntöjä.

    1.    ChrisADR dijo

      Kiitos Guillermo 🙂 No, toivottavasti löydät mielenkiintoisia asioita myös seuraavista viesteistä 🙂 Terveisiä

  14.   Edgar dijo

    Yksinkertainen selitys on aina paras .. erinomainen ..
    Ehdotan git ... ohjelmoijille se on perusasetusta, kun haluat työskennellä tiiminä ja järjestää työsi .. versiot ..

    1.    ChrisADR dijo

      Hyvin totta Edgar, yritän lähettää siitä sisältöä, vaikka on melko vaikea sanoa jotain uutta, koska git-dokumentaatio on jo runsaasti ja useita asioita on jo käännetty useille kielille. Näen mitä voin tehdä, terveisiä ja kiitoksia jakamisesta

  15.   tiririri dijo

    Hei, vastaako numero 0-18 446-bittistä desimaaliarvoa vai viittaako se toiseen arvoon? No, lasketaan 744 ^ 073: n teho, tulos on: 709 551.

    1.    ChrisADR dijo

      Hei Tiririri, mielestäni sinulla on pyöristysongelma, voit yrittää käyttää komentoa bc? on ohjelmointikieli, joka on suunniteltu mahdollisimman tarkaksi, kun sen sisällä on vain tehtävä 2^64Ehkä se ratkaisee sen. Kerro minulle, miten meni, terveisiä

      . Todellinen arvo on 18, mutta vähennämme 446, koska 744 lasketaan mahdolliseksi arvoksi 🙂

      1.    tiririri dijo

        Kiitos, laskin sen verkkolaskimella (jonka löysin netistä (https://es.calcuworld.com/calculadoras-matematicas/potencias/) ja se oli tulos, jonka se antoi minulle.
        Ja kyllä, olen jo kokeillut bc-komentoa, ja se antaa minulle tosiasiallisesti arvon, jonka kirjoitit muistiin.

  16.   tiririri dijo

    Hei jälleen, kuva, jossa viitataan rajoituksiin. H-kirjasto, on hyvin pieni eikä sitä voi lukea (ainakaan en voinut lukea sitä, koska näen, että kaikki tekivät, näyttää siltä), ja koska en ymmärrä sitä, en enää jatka käsittelyssä. En tiedä, voisitko muuttaa sitä, toivottavasti en häirinnyt sinua siinä.

    1.    ChrisADR dijo

      Voit kokeilla mobiiliversiota, ne näyttävät hieman selkeämmiltä, ​​se on wordpress-teema: / Toisaalta kaikki C-otsikot löytyvät / usr / include / -kansiosta, tässä tapauksessa voit halutessasi lukea sen suoraan, jos se on helpompaa 🙂 Yritän ladata isomman kuvan nähdäksesi, auttaako se 🙂

      1.    tiririri dijo

        Kiitos, mielestäni minun pitäisi olla kärsivällinen tässä, heh heh.

  17.   Katekyo dijo

    Kiitos artikkelista, koska nyt ymmärsin hieman paremmin kielen muuttujat ja esitysalueen, mutta nyt mielestäni minun pitäisi alkaa käyttää kirjastoa "stdint.h", koska he suosittelevat sen käyttöä ohjelmoidessaan c: ssä, koska Minulle oli opetettu vanhaa koulua, koska muisti oli kallista, ja käytetyn suhteen oli oltava varovainen

    1.    ChrisADR dijo

      Katekyoa ei ole, on varmasti parempi käyttää tavallista kirjastoa, mutta voin vakuuttaa teille, että on parempi tietää, mikä erottaa uint_least8_t uint_fast8_t: stä ja joka saavutetaan tuntemalla primitiiviset tietotyypit, mikä oli viestin tavoite kiitos kommentista ja artikkelin lukemisesta, terveisiä

  18.   voittaja dijo

    : Tai mestarillinen selitys! Tiesin osan käsitteistä, mutta saan paljon uutta tietoa tästä viestistä

    1.    ChrisADR dijo

      Paljon kiitoksia Victor 🙂 kuinka hyvä, että artikkelista voi olla apua, terveisiä

  19.   Guille dijo

    Pidin todella Pythonista ohjelmoinnin helpottamiseksi, näin kurssin http://zetcode.com/gui/pyqt4/ Rakastin viimeistä tetristä: http://zetcode.com/gui/pyqt4/thetetrisgame/
    Tämä tetris, jonka retusoin kesällä, laitoin pisteitä, moninpeliä ja musiikkia vähitellen, mutta erittäin viihdyttävää.

    1.    ChrisADR dijo

      Hei Guille, on varmasti erittäin viihdyttävää nähdä, että työskentelemäsi ohjelmisto kasvaa vähitellen 🙂 se on vertaansa vailla oleva kokemus, ja vielä enemmän kun joku pitää kehitettävääsi hyödyllisenä eli toisesta maailmasta 😀 kiitos paljon jakamisesta 🙂

      1.    Guille dijo

        Sen, jonka tein, olen ladannut (30 Mt musiikkia varten) http://guillermo.molleda.com/Tetris9.7z
        Sinun on määritettävä jokaiselle pelaajalle erilainen aloitusnopeus tai jos aloitat pisteet uudelleen uuden pelin jälkeen,… ja kahden tyttäreni kanssa on kolme pelaajaa pelaamaan kanssani. Se aiheuttaa jopa riippuvuutta.