Nažalost, vidio sam da malo tko želi naučiti programirati u 2018. , ali čak i da sam samo pročitao svoje artículo prednji osoba i nakon malo vremena uspije poslati commit na neki projekt slobodnog softvera, bio bih zadovoljan svojim radom
Za ljubitelje sigurnosti, obećavam da će sljedeći biti post o sigurnosti tako da su svi zadovoljni, ako netko želi naučiti nešto drugo (npr. git, administracija poslužitelja ili što ja znam :p ), ili komentirati neku drugu temu na koje se ne može odgovoriti jednostavno u polju za komentare, javite mi i vidjet ćemo kako možemo raditi na tome
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 to tema koje se uvijek dotaknem kada pišem o programiranju, to je svakako nešto što me fascinira i što mi je pomoglo da shvatim mnoge stvari, sada ću pokušati malo objasniti što 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 0 a 1 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. Budući da zvuči 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 1: 2^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 , što već znamo što znači sada ćemo dodati naše 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
![]()
Imamo jednog K!! Čestitamo, sada znate kako čitati u binarnom sistemu Ali najpametniji će primijetiti da smo dobili i decimalni broj, i da on 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. Zvuči li nekome taj broj poznato? Sjećate li se maksimalnog broja priključaka na Linux sustavu? Ostavit ću ti zadaću
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. Sada vidite zašto su dijelovi tako 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 velika brojka
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?
Već smo došli do dijela gdje sve ima smisla Tipkanje je svojstvo koje programski jezici koriste za imenovanje ovih memorijskih prostora. Sve varijable imaju svoj pandan u jednom od ovih tipova podataka, bez obzira na to kako se zovu. Ovi 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. CKada definiramo varijablu u jezicima kao što su Javascript ili Python, tumač je odgovoran za razumijevanje koje je vrste i dodjeljivanje dovoljno memorijskog prostora za izvođenje operacija. Pogledajmo jednostavan primjer
Vlastiti. Christopher Diaz Riveros
Kao što vidite, ne moramo objašnjavati tip naše varijable python interpreteru, jer je on sam odgovoran za dodjeljivanje tipa i njegovo pohranjivanje u memoriju
Upoznajte svoje varijable
To ovisi o jeziku i vrsti implementacije koju ćete koristiti, ali prvi korak do sposobnosti programiranja je naučiti varijable koje možete koristiti Nakon što razumijete varijable, bit ćete u poziciji da možete koristiti ih učinkovito i logično za pohranu informacija (koje daje korisnik ili sustav). Ovo je prvi korak na ljestvici programiranja i nadamo se da ćete nakon čitanja ovog članka malo bolje razumjeti kako vaše računalo radi i kako pohranjuje informacije. Sa mnom će to biti do sljedećeg članka, ne zaboravite ostaviti svoje komentare kako biste znali treba li neku konkretnu točku pojačati ili komentirati. Lijepi pozdrav