Varijable 101: Poznavanje vašeg računala

Nažalost, vidio sam da mnogi ne žele naučiti programirati ovu 2018. godinu, ali čak i da sam samo pročitao svoj artículo prednji osoba i nakon malo vremena može poslati obvezu na projekt besplatnog softvera, bio bih zadovoljan svojim radom 🙂

Za one koji vole sigurnost, obećavam vam da će sljedeće biti post o sigurnosti 🙂 tako da su svi sretni ako netko želi naučiti nešto drugo (poput gita, administriranje poslužitelja ili što ja znam: p) ili da komentiram neku drugu temu na koji se ne može odgovoriti na jednostavan način u okviru za komentare, javite mi i vidimo kako to možemo raditi 😉

Pa, ako idemo na našu stvar, prije smo razgovarali o tipkanju i da je to povezano s načinom na koji spremamo svoje varijable u program, sada ćemo pregledati malo onoga što se događa unutra i nadamo se da to može biti dovoljno jasno.

bitovi

Mislim da je ovo tema koje se uvijek dotaknem kad pišem o programiranju, to je zasigurno nešto što me fascinira i što mi je pomoglo da razumijem mnoge stvari, sada ću pokušati objasniti malo kako su, kako se čitaju i čemu služe 🙂

Zamislite prekidač za svjetlo, kad je krug zatvoren, imamo 0 na zaslonu, kada promijenimo položaj prekidača, jer a 1🙂 jednostavno zar ne?

Sada a 01 mogu značiti mnogo stvari, sve ovisi o kreativnosti s kojom ga poduzimate, pretpostavimo da želim znati ide li netko na sjever ili jug, 1 može značiti sjever i 0, sur 🙂 recimo da želim znati je li netko muškarac ili žena, 1 to može biti čovjek i 0, žena 🙂. Sada želim znati je li ta osoba mlada ili stara (> 22), 0 može značiti mlad i 1, više. Nastavimo maštati ... Imate li kućnih ljubimaca? 1 Rekao bih da da, dok 0 Rekao bih ne Sada želim da pročitate sljedeći redak sa mnom:

1001

Ovo je kratki način da kažem ...

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

koja se uvelike razlikuje od:

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

Bytes

Idemo sada korak dalje, naučimo kako čitati bajtove. Bajt je slijed od 8 bitova, koji se čitaju zdesna nalijevo i svaki 1 predstavlja moć od 2 podignuta na n gdje n je položaj bita. Kako zvuči kao kineski, dajmo mali primjer 🙂

01001011 Imamo ovaj bajt, sada ćemo ići s desna na lijevo (<-) Postavit ću ih odozgo prema dolje kako bih mogao napisati njihovo značenje:

1: bit u položaju 0 označava da imamo sljedeća 2 podignuta na nulu ili 2^0. To dobro znamo da je ekvivalentno 1.

1: drugi bit, sada položaj 12^1 što je isto što i reći 2

0: treći bit ... ovo bi trebalo biti 2^2, ali budući da nije uključen, ostavit ćemo ga uključenim 0

1: četvrti bit, 2^3 u 8 ????

0: isto kao 0

0: ostalo 0

1: sad smo u 2^6 o 64

i konačno 0 , mi već znamo što to znači 🙂 sada ćemo dodati svoje rezultate i usporediti ih sa sljedećom tablicom 🙂 imamo 75 pa potražimo to u stupcu Decimal i vidjet ćemo što se pojavljuje u Char

Rezultat slike za tablicu ascii

Imamo jednog K!! Čestitamo, već znate kako čitati u binarnom obliku 🙂 Ali najpronicljiviji su možda primijetili da smo dobili i decimalni broj i da ima ograničenje (kada su sve vrijednosti 1) Ta se granica nalazi u broju 255.

riječ

Sad će mi reći više od jednog, ali što ako trebam broj veći od 255? ili gdje mogu pronaći druge likove poput Japanaca? Pa, odgovor je jednostavan, spojimo 2 bytes. Sad kad imamo dvije, mogući broj kombinacija koje imamo je 2^16 o 65536 mogući ishodi, kao što su 0 je jedan od tih, maksimum mogućih je 65535. Zvoni li taj broj? Sjećate se maksimalnog broja priključaka na linux sustavu? Ostavljam im domaće zadaće 😉

Dvostruka riječ i četverokut

Za matematičkije postoje i specifični formati, dvostruka riječ sadrže, kako su mnogi već zamislili 2 word o 4 bytes (o 32 bits) informacija, isto što i reći:

11111111111111111111111111111111 na 0 a 4 294 967 295

U ovom će se trenutku mnogi zapitati što se događa s negativnim brojevima, odnosno negdje ih se mora razmišljati, zar ne? Da bi mogli pohraniti negativan broj, programeri procesora odlučili su zauzeti prvi bit s lijeve strane kao vrijednost znaka. To znači da ako je prvi bit 0 govorimo o pozitivnom broju, ali ako jest 1 imamo negativan. Sad pogledajte zašto su bitovi toliko posebni, mogu biti što god želite 😀

Ali ovo nam očito ostavlja jedan položaj manje za obavljanje množenja! Dakle naš0 a 4 294 967 295 postaje:

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

Mnogi od nas već jesu 64 bits, a ovo je vrijednost a četverokut, možemo imati vrijednosti u rasponu od 0 a 18 446 744 073 709 551 615. To je velik broj 🙂

Zašto 8 bit?

To je nešto što će se zapitati više osoba, a odgovor je u hardveru. Od početka su procesori trebali podatke kako bi mogli izvoditi operacije. Podaci se pohranjuju u memoriju računala i svaki put kad ih procesor zahtijeva, za prikupljanje koristi sabirnice podataka. U davna vremena ovi sabirnici mogli su komunicirati najviše 8 bita po ciklusu, što znači da je najveći i najučinkovitiji način premještanja podataka bio grupiranje 8 bita i njihovo slanje u procesor.

S vremenom, do danas, procesori su razvili sposobnost pomicanja 16 bita, 32 bita i ... 64 bita.

Kakve to veze ima s tipkanjem?

Sad smo u dijelu u kojem sve to ima smisla 🙂 Tipkanje je svojstvo koje programski jezici koriste za imenovanje tih memorijskih prostora. Sve varijable imaju svoj pandan u jednoj od ovih vrsta podataka, bez obzira kako se zvale. Oni su poznati kao primitivni tipovi podatakaSvaki jako tipkani jezik ima svoje poimanje tih vrijednosti i količine koju one predstavljaju. Na primjer u C imamo knjižnicu limits.h što nam pokazuje maksimalnu i minimalnu količinu primitivnih vrijednosti.

Pogledajmo što će se dogoditi ako pokušamo razbiti jednu od vrijednosti:

Vlastiti. Christopher Diaz Riveros

S desne strane imamo vrijednosti datoteke limits.h i s lijeve strane uzeli smo jednu od ovih vrijednosti (unsigned short int) i dodijelili smo broj veći od odgovarajućeg. Kao rezultat toga, prevodilac nas upozorava da zloupotrebljavamo memoriju jer je binarni oblik 66666 ne može stati u binarni oblik 65535. To nas vodi do lekcije u predstava kada programiramo, ako vaša vrijednost neće rasti puno s vremenom ili ako ne trebate vrijednosti velike kao vrijednosti dvostruko o četverokutKorištenje ispravnog tipa smanjuje količinu memorije koju zahtijeva CPU, što podrazumijeva veću brzinu dohvaćanja podataka ako je dobro proračunata.

Na strani tumača to je lakše zbog implicitne pretvorbe. Ctada definiramo varijablu u jezicima kao što su javascript ili Python, tumač je zadužen za razumijevanje vrste i dodjelu dovoljno memorijskog prostora za izvođenje operacija. Pogledajmo jednostavan primjer 🙂

Vlastiti. Christopher Diaz Riveros

Kao što vidite, ne moramo tumaču pythona objašnjavati vrstu naše varijable, jer je ona zadužena za dodjeljivanje tipa i pohranjivanje u memoriju 🙂

Upoznajte svoje varijable

To ovisi o jeziku i vrsti implementacije koju ćete koristiti, ali prvi korak da biste mogli programirati jest naučiti varijable koje možete koristiti 🙂 Jednom kad shvatite varijable, moći ćete ih učinkovito i logično koristiti za pohranu podataka (pod uvjetom od strane korisnika ili sustava). Ovo je prvi korak na programskoj ljestvici i nadamo se da ćete nakon čitanja ovog članka bolje razumjeti kako vaše računalo radi i kako pohranjuje informacije. Bit će sa mnom do sljedećeg članka, ne zaboravite ostaviti svoje komentare da biste vidjeli trebate li pojačati ili komentirati bilo koju točku. Živjeli


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   Luis dijo

    Dobro napisano, sažeto i jasno, istovremeno zanimljivo za svu publiku. Dobar posao.

    1.    ChrisADR dijo

      Puno vam hvala, pozdrav 🙂

  2.   Ivana Isusa dijo

    Izvrsno objašnjenje. Vi ste stroj.

    1.    ChrisADR dijo

      Hvala ti

  3.   Ruben dijo

    Vrlo dobro objašnjeno hvala

    1.    ChrisADR dijo

      Hvala vam što ste je pročitali u cijelosti 🙂

  4.   Diego dijo

    Izvrsno, hvala na unosu. A iskorištavanjem binarnog problema postoji mogućnost da nam date klasu IP-a, podmreže itd. Razumijem da to nije programsko pitanje, ali dobro objašnjenje tog problema uvijek se čekalo.
    Još jednom, hvala na vašem objašnjenju

    1.    ChrisADR dijo

      Pozdrav Diego, to se može učiniti 🙂 istini za volju, ni ja nisam puno ulazio u tu temu, ali nema boljeg načina za istragu od traženja nečega o tome u članku 🙂 Ostavit ćemo to na popisu jer sljedeći post već ima temu a bavit će se otvrdnjavanjem. Pozdrav 🙂

  5.   Nestajati dijo

    Vi ste izvrstan učitelj i vrlo ste velikodušni u podučavanju onoga što znate. Svaka čast i hvala.

    1.    ChrisADR dijo

      Puno ti hvala Pedro 🙂 Još uvijek tražim mjesta za predavanje, nažalost ovdje u Peruu je teško kad imaš samo tehničku stručnu spremu, pa sada gledam mogućnost nastavka sveučilišnog studija ovdje ili tamo gdje mogu ili čak i prijaviti se na magisterij za strance, tko zna, možda se uskoro nešto takvo može dati 🙂, ali definitivno je podučavanje nešto što mi uljepšava dan 🙂 Pozdrav

  6.   nešto dijo

    Nisam pročitao bolje objašnjenje teme, prvi je primjer sjajan

    iako nisam čuo tu riječ (poput 16-bitnih varijabli), dvostruku riječ ili četverokut

    bez obzira što "već programiram", postovi su zanimljivi. Ako treba postojati bilo kakav problem, post treba upotrijebiti C (limit.h) kao primjer varijabilnih veličina, C ima najmanje specifičnu specifikaciju koja postoji

    1.    ChrisADR dijo

      Pozdrav nešto 🙂 puno hvala, usput sam došao do primjera 😛 jer su sigurno poznati podaci za one koji su pročitali malo skupštine, a to je ono što procesor razumije 🙂 hahaha sigurno C nije baš specifičan, ali mislim da jest zbog činjenice da su prenosivost i različite arhitekture koje podržava toliko varirali da C mora prilagoditi svaku vrstu procesora kako bi bio doista prenosiv
      Pozdrav i hvala na podjeli.

  7.   Sergio dijo

    Osim što bi bilo zanimljivo da se ova serija vodiča temelji na hrđi, mislim da je to jedan od najzanimljivijih jezika koji se danas razvijaju.
    Iza njega sam, ali prepoznajem da je to težak jezik, ali s velikom budućnošću ...
    Radujem se vašim sljedećim člancima, stvarno su zanimljivi.
    Pozdrav.

    1.    ChrisADR dijo

      Pozdrav Sergio, bilo bi sigurno zanimljivo, čuo sam da GNOME planira implementirati Rust u svom paketu programa, još ga nisam vidio u potpunosti, ali dolazi migracija.
      Što se tiče jezika, osobno još uvijek učim C, želim biti sposoban početi se razvijati na jezgri u sljedećih nekoliko mjeseci i radije bih naučio nekoliko jezika detaljno prije nego što započnem s pregledom novih, ali definitivno mogu potražiti nešto zanimljivo i napraviti nekoliko primjera u Rustu, jer njegova dokumentacija sama po sebi izgleda prilično dobro.
      Pozdrav i hvala na dijeljenju 🙂

  8.   David dijo

    Vrlo dobra objašnjenja, kako u ovom članku, tako i u prethodnom. Nadam se da ćete nastaviti s ovom temom koja mi se čini vrlo zanimljivom.

    1.    ChrisADR dijo

      Pozdrav Davide, također se nadam da ću nastaviti pisati i posebno motivirati ljude da sudjeluju sa besplatnim softverom, toliko je projekata i potreba da bi bilo izvrsno imati nekoliko dodatnih ruku za razvoj develop
      pozdravi

  9.   Mart dijo

    Možete li objaviti post o Turingovom stroju?

    1.    ChrisADR dijo

      Pozdrav Mart 🙂 Mislim da smo ga već spomenuli u nekom komentaru, zar ne? Siguran sam da mogu sastaviti nešto zanimljivo na tu temu 🙂 da vidimo što može izaći. Pozdrav i hvala što ste pročitali sve moje članke, od prvog dana do danas uvijek sam vas vidio prilično zainteresiranih 🙂

  10.   ALLAN LARA dijo

    Wow, puno vam hvala kako dobro objašnjenje.

    pozdravi

    1.    ChrisADR dijo

      Puno vam zahvaljujem Allan

  11.   ramon hidalgo dijo

    Pročitala sam vaš prethodni post! Puno vam hvala na objašnjenju, iako mislim da nikada neću dovršiti razumijevanje riječi.

    1.    ChrisADR dijo

      Pozdrav Ramone, hvala vam što ste pročitali oboje. Ako je od bilo kakve koristi, «riječ» je razvoj bajta, to je poput procesora, prije nego što je bilo 8-bitnih, nakon 16-bitnih itd. ... to je zato što svaki put kada nam je potrebno više prostora za obradu i bolja brzina ili moć ... rođena je "riječ" jer je prostor "bajta" promašio, a isto kao i kod "dvostruke" i "četverostruke" riječi 🙂 prirodna je evolucija koja nas tjera da dodamo snagu i prostor za daljnji razvoj 🙂

      pozdravi

  12.   anoniman dijo

    Ove 2018. godine učim programirati da ili da, hvala

    1.    ChrisADR dijo

      Drago mi je 🙂 potrudite se !! Živjeli

  13.   Guillermo dijo

    Puno vam hvala, nastavite tako. Već znam kako programirati, ali čekam vaša učenja, da je moje samouko programiranje puno loših praksi.

    1.    ChrisADR dijo

      Hvala Guillermo 🙂 Pa nadam se da ćete pronaći zanimljivosti i u sljedećim postovima 🙂 Pozdrav

  14.   Edgar dijo

    Jednostavno objašnjenje je uvijek najbolje .. izvrsno ..
    Predložio bih git ... za programere je osnovno kada želite raditi kao tim i dovesti svoj posao u red .. verzije ..

    1.    ChrisADR dijo

      Vrlo istinito Edgar, pokušat ću objaviti sadržaj o tome, iako je prilično teško reći nešto novo, jer je git dokumentacija već obilna i nekoliko je stvari već prevedeno na nekoliko jezika. Vidjet ću što mogu učiniti, pozdravi i hvala na dijeljenju

  15.   tiririri dijo

    Pozdrav, odgovara li broj od 0 do 18 446 744 073 709 551 615 64-bitnoj decimalnoj vrijednosti ili se odnosi na drugu vrijednost? Pa, izračunavajući snagu od 2 ^ 64, rezultat koji dobivam je: 18 446 744 073 709 552.

    1.    ChrisADR dijo

      Pozdrav Tiririri, mislim da imate problem sa zaokruživanjem, možete pokušati koristiti naredbu bc? je programski jezik dizajniran da bude što precizniji, jednom u njemu samo je potrebno 2^64, možda će to riješiti 🙂 javite mi kako je prošlo, pozdrav

      . Stvarna vrijednost je 18 446 744 073 709 551 616, ali oduzimamo 1 jer 0 vrijedi kao moguća vrijednost 🙂

      1.    tiririri dijo

        Hvala, izračunao sam to pomoću kalkulatora snage koji sam pronašao na netu (https://es.calcuworld.com/calculadoras-matematicas/potencias/) i to je bio rezultat koji mi je dao.
        I da, već sam isprobao naredbu bc i ona mi učinkovito daje vrijednost koju ste zapisali.

  16.   tiririri dijo

    Pozdrav još jednom, slika na kojoj se pozivate na knjižnicu limit.h vrlo je mala i ne može se pročitati (barem je nisam mogla pročitati, jer vidim da su svi to činili), a budući da je ne razumijem, više ne nastavljam čitanje. Ne znam biste li to mogli promijeniti, nadam se da vas nisam time zamarao.

    1.    ChrisADR dijo

      Možete isprobati mobilnu verziju, one izgledaju malo jasnije, riječ je o wordpress temi: / s druge strane, sva zaglavlja C mogu se naći u / usr / include /, u ovom slučaju možete ih pročitati izravno ako želite lakše je 🙂 Pokušat ću učitati veću sliku da vidim pomaže li 🙂

      1.    tiririri dijo

        Hvala, mislim da bih trebao biti strpljiv s ovim, heh heh.

  17.   Katekyo dijo

    Hvala na članku, jer sada sam malo bolje razumio varijable i opseg predstavljanja jezika, ali sada mislim da bih trebao početi koristiti biblioteku "stdint.h", jer je preporučuju za korištenje prilikom programiranja na c jer Učili su me staroj školi jer je pamćenje bilo dragocjeno i trebalo je biti oprezan s onim što se koristi

    1.    ChrisADR dijo

      Za Katekyo nema razloga, zasigurno je bolje koristiti standardnu ​​knjižnicu, ali uvjeravam vas da je bolje znati što razlikuje uint_least8_t od uint_fast8_t, a to se postiže poznavanjem primitivnih tipova podataka, što je i bio cilj posta 🙂 Veliko hvala na komentaru i čitanju članka, pozdrav

  18.   pobjednik dijo

    : Ili majstorsko objašnjenje! Znao sam dio koncepata, ali iz ovog posta dobivam puno novih znanja

    1.    ChrisADR dijo

      Puno vam hvala, Victor 🙂 kako dobro što članak može biti od pomoći, pozdrav

  19.   Guille dijo

    Jako mi se svidio Python kako bi olakšao programiranje, vidio sam tečaj u http://zetcode.com/gui/pyqt4/ Svidio mi se zadnji tetris o: http://zetcode.com/gui/pyqt4/thetetrisgame/
    Ovaj tetris retuširao sam tijekom ljeta kako bih stavio bodove, više igrača i glazbu, malo po malo, ali vrlo zabavno.

    1.    ChrisADR dijo

      Pozdrav Guille, zasigurno je vrlo zabavno vidjeti kako softver na kojem radiš raste malo po malo is to je neusporedivo iskustvo, a još više kad nekome ovo što razvijate bude korisno, to je iz drugog svijeta 😀 veliko hvala na dijeljenju 🙂

      1.    Guille dijo

        Onu koju sam napravio prenio sam na nju (30 MB za glazbu) http://guillermo.molleda.com/Tetris9.7z
        Morate konfigurirati različitu početnu brzinu za svakog igrača ili ako ponovno pokrenete bodove nakon nove igre, ..., a tri su igračice za moje dvije kćeri koje će se igrati sa mnom. Čak izaziva ovisnost.