Mainīgie 101. Datora pārzināšana

Diemžēl esmu redzējis, ka ne daudzi vēlas iemācīties programmēt šo 2018. gadu, bet pat tad, ja es būtu lasījis tikai savu iepriekšējais raksts cilvēks un pēc neilga laika spēj nosūtīt apņemšanos uz bezmaksas programmatūras projektu, es būtu apmierināta ar savu darbu 🙂

Tiem, kas mīl drošību, es apsolu jums, ka šis būs ziņojums par drošības uzdevumiem, tāpēc visi ir laimīgi, ja kāds vēlas uzzināt kaut ko citu (piemēram, git, servera administrēšanu vai es nezinu: p) vai komentē kādu citu tēmu, uz kuru komentāru lodziņā nevar viegli atbildēt, dari man zināmu, un mēs varam redzēt, kā mēs to varam strādāt 😉

Nu, tagad, ja mēs ejam pie mūsu lietas, iepriekš mēs runājām par rakstīšanu un ka tas bija saistīts ar veidu, kā mēs saglabājam savus mainīgos programmā, tagad mēs nedaudz pārskatīsim to, kas notiek iekšpusē, un, cerams, ka tas notiks var būt pietiekami skaidrs.

bits

Es domāju, ka šī ir tēma, kurai es vienmēr pieskaros, rakstot par programmēšanu, tas noteikti mani aizrauj un kas man ir palīdzējis saprast daudzas lietas, tagad es centīšos nedaudz paskaidrot, kā viņi ir, kā tos lasa un kam tie domāti 🙂

Padomājiet par gaismas slēdzi, kad ķēde ir slēgta, mums ir a 0 uz ekrāna, kad mēs mainām slēdža pozīciju, jo a 1🙂 vienkārši vai ne?

Tagad a 0 un 1 Tās var nozīmēt daudzas lietas, viss ir atkarīgs no radošuma, ar kādu jūs to lietojat, pieņemu, ka es gribu zināt, vai kāds dodas uz ziemeļiem vai dienvidiem, 1 var nozīmēt ziemeļu un 0, sur 🙂 pieņemsim, ka es gribu zināt, vai kāds ir vīrietis vai sieviete, 1 tas var būt vīrietis un 0, sieviete 🙂. Tagad es vēlos uzzināt, vai šī persona ir jauna vai veca (> 22), 0 var nozīmēt jauni un 1, augstāk. Turpināsim iedomāties ... Vai jums ir kādi mājdzīvnieki? 1 Es teiktu, ka jā, kamēr 0 Es teiktu, ka nē Tagad es vēlos, lai jūs kopā ar mani izlasītu šo rindu:

1001

Tas ir īss veids, kā pateikt ...

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

kas ļoti atšķiras no:

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

Baiti

Tagad ejam vienu soli tālāk, iemācīsimies lasīt baitus. Baits ir 8 bitu secība, kas tiek nolasīta no labās uz kreiso pusi un katra 1 pārstāv spēku 2 paaugstināts līdz n kur n ir uzgaļa pozīcija. Tā kā izklausās pēc ķīniešu valodas, sniegsim nelielu piemēru 🙂

01001011 Mums ir šis baits, tagad mēs ejam no labās uz kreiso (<-). Es tos ievietošu no augšas uz leju, lai varētu uzrakstīt to nozīmi:

1: uzgalis, kad atrodas pozīcijā 0 norāda, ka mums ir šādi 2 paaugstināti līdz nullei vai 2^0. Šī labi zināmā zīme ir līdzvērtīga 1.

1: otrais bits, tagad pozīcija 12^1 kas ir tas pats, kas teikt 2

0: trešais bits ... tam vajadzētu būt 2^2, bet, tā kā tas nav ieslēgts, atstāsim to 0

1: ceturtais bits, 2^3 u 8 ????

0: Tāpat kā 0

0: cits 0

1: tagad mēs esam iekšā 2^6 o 64

un visbeidzot 0 , mēs jau zinām, ko tas nozīmē 🙂 tagad mēs pievienosim savus rezultātus un salīdzināsim tos ar nākamo tabulu 🙂 Mums ir 75 tāpēc meklēsim to kolonnā Decimāldaļskaitlis un mēs redzēsim, kas parādās kaujas rati

Attēla rezultāts ASCII tabulai

Mums tāds ir K!! Apsveicam, jūs jau zināt, kā lasīt binārā formātā 🙂 Bet visnopietnākais var būt pamanījis, ka esam ieguvuši arī decimāldaļu skaitli un ka tam ir robeža (kad visas vērtības ir 1) Šī robeža ir atrodama skaitlī 255.

vārds

Tagad man to teiks ne viens vien, bet ko darīt, ja man vajag skaitli, kas lielāks par 255? vai kur es varu atrast citas rakstzīmes, piemēram, japāņus? Nu atbilde ir vienkārša, saliksim kopā 2 bytes. Tagad, kad mums ir divi, iespējamais kombināciju skaits ir 2^16 o 65536 iespējamie rezultāti, piemēram, 0 ir viens no tiem, maksimāli iespējamais ir 65535. Vai šis numurs kādam zvana? Vai atceraties maksimālo portu skaitu Linux sistēmā? Es viņiem atstāju mājasdarbu 😉

Dubultvārds un četrrindu vārds

Matemātiskākai informācijai ir arī īpaši formāti dubultvārds satur, kā daudzi, iespējams, jau ir iedomājušies 2 word o 4 bytes (o 32 bits) informāciju, tas pats, kas teikt:

11111111111111111111111111111111 līdz 0 a 4 294 967 295

Šajā brīdī daudziem rodas jautājums, kas notiek ar negatīviem skaitļiem, tas ir, kaut kur tie ir jāapsver, vai ne? Lai varētu saglabāt negatīvu skaitli, procesora izstrādātāji izvēlējās ieņemt pirmo bitu kreisajā pusē kā zīmes vērtību. Tas nozīmē, ka, ja pirmais bits ir 0 mēs runājam par pozitīvu skaitli, bet, ja tā ir 1 mums ir negatīvs. Tagad uzziniet, kāpēc biti ir tik īpaši, ka tie var būt neatkarīgi no tā, ko vēlaties 😀

Bet tas acīmredzami atstāj mums vienu vietu mazāk, lai veiktu reizināšanu! Tātad mūsu0 a 4 294 967 295 kļūst:

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

Tagad daudziem no mums jau ir 64 bits, un tā ir a vērtība četrkodolu vārds, mums var būt vērtības, sākot no 0 a 18 446 744 073 709 551 615. Tas ir liels skaitlis 🙂

Kāpēc 8 bitu?

Tas ir kaut kas, ko var domāt ne viens vien, un atbilde ir aparatūrā. Sākotnēji procesoriem bija nepieciešami dati, lai varētu veikt darbības. Dati tiek glabāti datora atmiņā, un katru reizi, kad procesors to pieprasa, tas izmanto datu kopnes, lai tos iegūtu. Senos laikos šīs kopnes vienā ciklā varēja sazināties ne vairāk kā ar 8 bitiem, tas nozīmē, ka maksimālais un efektīvākais datu pārvietošanas veids bija 8 bitu grupēšana un nosūtīšana procesoram.

Ar laiku līdz mūsdienām procesori ir attīstījuši spēju pārvietot 16 bitus, 32 bitus un ... 64 bitus.

Kāds tam sakars ar rakstīšanu?

Mēs tagad esam tajā vietā, kur tam visam ir jēga. 🙂 Rakstīšana ir īpašums, ko programmēšanas valodas izmanto, lai nosauktu šīs atmiņas vietas. Visiem mainīgajiem ir līdzinieks vienā no šiem datu veidiem, neatkarīgi no tā, kā tos sauc. Tie ir pazīstami kā primitīvu datu tipiKatrā izteikti rakstītajā valodā ir sava koncepcija par šīm vērtībām un to pārstāvēto daudzumu. Piemēram, C mums ir bibliotēka limits.h kas mums parāda primitīvo vērtību maksimālo un minimālo daudzumu.

Apskatīsim, kas notiks, ja mēģināsim lauzt kādu no vērtībām:

Pašu. Kristofers Diazs Riveross

Labajā pusē mums ir faila vērtības limits.h un pa kreisi mēs esam paņēmuši vienu no šīm vērtībām (unsigned short int), un mums ir piešķirts skaitlis, kas ir lielāks par atbilstošo. Rezultātā sastādītājs mūs brīdina, ka mēs nepareizi izmantojam atmiņu, jo binārā forma ir 66666 nevar ievietot binārā formā 65535. Tas mūs noved pie stundas sniegums kad mēs ieprogrammējam, ja jūsu vērtība laika gaitā īpaši nepieaugs vai ja jums nav nepieciešamas tik lielas vērtības kā dubultosies o četrkodolu vārdsPareiza veida izmantošana samazina CPU pieprasīto atmiņas apjomu, kas nozīmē lielāku datu iegūšanas ātrumu, ja tas ir labi aprēķināts.

Tulka pusē tas ir vieglāk, pateicoties netieši pārveidojumi. CMēs definējam mainīgo tādās valodās kā javascript vai Python, tulks ir atbildīgs par tā veida izpratni un pietiekamu atmiņas vietas piešķiršanu darbību veikšanai. Apskatīsim vienkāršu piemēru 🙂

Pašu. Kristofers Diazs Riveross

Kā redzat, mums nav jāpaskaidro pitona tulkotājam mūsu mainīgā tips, jo tas ir atbildīgs par tipa piešķiršanu un saglabāšanu atmiņā 🙂

Zināt savus mainīgos

Tas ir atkarīgs no valodas un ieviešanas veida, kuru izmantosiet, taču pirmais solis, lai varētu ieprogrammēt, ir iemācīties mainīgos, kurus varat izmantot 🙂 Kad sapratīsit mainīgos, varēsit tos izmantot efektīvi un loģiski uzglabāt informāciju (ko nodrošina lietotājs vai sistēma). Šis ir pirmais solis programmēšanas kāpnēs, un, cerams, pēc šī raksta izlasīšanas jums būs labāka izpratne par to, kā darbojas jūsu dators un kā tas glabā informāciju. Tas būs ar mani līdz nākamajam rakstam. Atcerieties atstāt savus komentārus, lai redzētu, vai jums ir jāpastiprina vai jākomentē kāds konkrēts punkts. Priekā


Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.

  1.   Luis teica

    Labi uzrakstīts, kodolīgs un skaidrs, tajā pašā laikā interesants visām auditorijām. Jauks darbs.

    1.    KrissADR teica

      Liels paldies, sveicieni 🙂

  2.   Jānis Jēzus teica

    Lielisks izskaidrojums. Tu esi mašīna.

    1.    KrissADR teica

      Paldies

  3.   Ruben teica

    Ļoti labi izskaidrots paldies

    1.    KrissADR teica

      Paldies, ka izlasījāt to pilnībā 🙂

  4.   Diego teica

    Lieliski, paldies par ieguldījumu. Izmantojot binārā jautājuma priekšrocības, pastāv iespēja, ka jūs varat mums iedot IP klasi, apakštīklu utt. Es saprotu, ka tas nav programmēšanas jautājums, taču vienmēr ir gaidīts labs šī jautājuma skaidrojums.
    Vēlreiz paldies par jūsu paskaidrojumu

    1.    KrissADR teica

      Sveiks, Diego, to var izdarīt, lai pateiktu patiesību, arī es neesmu daudz iedziļinājies šajā tēmā, taču nav labāka veida, kā to izmeklēt, nekā meklējot kaut ko par to kopīgot rakstā article Mēs to atstāsim sarakstā jo nākamajai ziņai jau ir tēma, un tā tiks galā ar rūdīšanos. Sveiciens 🙂

  5.   Peter teica

    Jūs esat lielisks skolotājs un ļoti dāsns, lai mācītu to, ko zināt. Apsveicu un paldies.

    1.    KrissADR teica

      Liels paldies jums Pedro 🙂 Es joprojām meklēju vietas, kur mācīt, diemžēl šeit, Peru, ir grūti, kad jums ir tikai tehniskais profesionālais grāds, tāpēc tagad es meklēju iespēju turpināt savas universitātes studijas šeit vai kur es varu vai pat piesakies maģistra grādam ārzemniekā, kas zina, varbūt drīz tiks dots kaut kas tāds 🙂 bet noteikti mācīšana ir kaut kas, kas padara manu dienu 🙂 sveiciens

  6.   kaut kas teica

    Nebiju lasījis labāku tēmas skaidrojumu, pirmais piemērs ir izcils

    lai gan es nebiju dzirdējis šo vārdu (piemēram, 16 bitu mainīgos), divkāršu vārdu vai četrkodolu vārdu

    neatkarīgi no tā, ka "es jau programmēju", ziņas ir interesantas. Ja rodas kāda problēma, ziņai jāizmanto C (limits.h) kā mainīgu izmēru piemērs, C ir vismazāk specifiskā specifikācija, kāda pastāv

    1.    KrissADR teica

      Sveiki, kaut kas, liels paldies, es nācu klajā ar piemēru, jo tie noteikti ir zināmi dati tiem, kas ir lasījuši mazliet Assamblejas, un tas ir tas, ko procesors saprot 🙂 hahaha noteikti C nav īpaši specifisks, bet es domāju, ka tas ir saistīts ar faktu, ka pārnesamība un dažādās tās atbalstītās arhitektūras ir bijušas tik dažādas, ka C ir jāpielāgo katra veida procesori, lai tie būtu patiesi pārnēsājami 🙂
      Sveiciens un paldies par dalīšanos.

  7.   Sergio teica

    Būtu interesanti, ja šī apmācību sērija būtu balstīta uz rūsu, es domāju, ka tā ir viena no interesantākajām valodām, kas tiek izstrādāta mūsdienās.
    Esmu aiz viņa, bet atzīstu, ka tā ir grūta valoda, bet ar lielu nākotni ...
    Es gaidu jūsu nākamos rakstus, tie ir patiešām interesanti.
    Sveicieni.

    1.    KrissADR teica

      Labdien Sergio, tas noteikti būtu interesanti. Esmu dzirdējis, ka GNOME plāno ieviest Rust savā programmu komplektā, es vēl neesmu redzējis visu to iecerēto darbības jomu, bet nāk migrācija.
      Kas attiecas uz valodām, es personīgi joprojām mācos C, es vēlos, lai tuvāko mēnešu laikā varētu sākt attīstīties kodolā, un es gribētu apgūt dažas valodas padziļināti, pirms sāku pārskatīt jaunas, bet es varu noteikti meklējiet kaut ko interesantu un veiciet dažus piemērus Rust, jo tā dokumentācija pati par sevi izskatās diezgan laba.
      Sveiciens un paldies par dalīšanos 🙂

  8.   David teica

    Ļoti labi paskaidrojumi gan šajā rakstā, gan iepriekšējā. Es ceru, ka jūs turpināsiet šo tēmu, kas man šķiet ļoti interesanta.

    1.    KrissADR teica

      Labdien, Deivid, es arī ceru turpināt rakstīt un īpaši motivēt cilvēkus piedalīties ar bezmaksas programmatūru. Tagad ir tik daudz projektu un vajadzību, ka būtu dažas papildu rokas, ko attīstīt, būtu lieliski 🙂
      Sveicieni

  9.   tirdzniecības centrs teica

    Vai jūs varētu izveidot ziņu par Turinga mašīnu?

    1.    KrissADR teica

      Sveiks, Marts, es domāju, ka dažos komentāros mēs tam jau iepriekš esam pieskārušies, vai ne? Esmu pārliecināts, ka varu izveidot kaut ko interesantu par šo tēmu 🙂 paskatīsimies, kas var iznākt. Sveiciens un paldies, ka izlasījāt visus manus rakstus, sākot no pirmās dienas līdz šodienai, es vienmēr esmu redzējis jūs diezgan ieinteresētu 🙂

  10.   ALLANS LARA teica

    Wow, liels paldies, cik labs paskaidrojums.

    Sveicieni

    1.    KrissADR teica

      Liels paldies Allan sveicieniem

  11.   Ramons Hidalgo teica

    Es izlasīju tavu iepriekšējo ierakstu! Liels paldies par paskaidrojumu, lai gan es domāju, ka es nekad nepabeigšu saprast vārdu.

    1.    KrissADR teica

      Sveiks Ramon, liels paldies, ka izlasījāt abus. Ja tas ir kādam lietojumam, «vārds» ir baita evolūcija, tas ir tāpat kā procesori, pirms tam bija 8 biti, pēc 16 bitiem utt. Tas ir tāpēc, ka katru reizi mums ir nepieciešams vairāk vietas, lai process un labāks ātrums vai jauda ... “vārds” ir dzimis tāpēc, ka “baita” telpa pietrūka, un tas pats ar “dubulto” un “četrstūra” vārdu 🙂 dabiskā evolūcija liek mums pievienot spēku un telpa, lai turpinātu attīstīties 🙂

      Sveicieni

  12.   anonīms teica

    Šajā 2018. gadā es iemācos programmēt jā vai jā, paldies

    1.    KrissADR teica

      Man prieks 🙂 centies !! Priekā

  13.   Rēķins teica

    Liels paldies, turpini tā. Es jau zinu, kā programmēt, bet es gaidu jūsu mācības, ka mana pašmācītā programmēšana ir pilna ar sliktu praksi.

    1.    KrissADR teica

      Paldies Guillermo 🙂 Nu, es ceru, ka jūs atradīsit interesantas lietas arī nākamajos ierakstos 🙂 Sveicieni

  14.   Edgar teica

    Vienkāršs skaidrojums vienmēr ir labākais .. izcils ..
    Es ieteiktu git ... programmētājiem tas ir vienkārši, ja vēlaties strādāt komandā un sakārtot savu darbu .. versijas ..

    1.    KrissADR teica

      Ļoti patiess Edgars, es mēģināšu par to ievietot saturu, lai gan kaut ko jaunu pateikt ir diezgan grūti, jo git dokumentācija jau ir bagātīga un vairākas lietas jau ir pārtulkotas vairākās valodās. Es redzēšu, ko es varu darīt, sveicienus un paldies par dalīšanos

  15.   tiririri teica

    Sveiki, vai skaitlis no 0 līdz 18 446 744 073 709 551 615 atbilst 64 bitu decimāldaļai vai attiecas uz citu vērtību? Nu, aprēķinot 2 ^ 64 jaudu, iegūtais rezultāts ir: 18 446 744 073 709 552 000.

    1.    KrissADR teica

      Sveiks, Tiririri, es domāju, ka jums ir noapaļošanas problēma, varat mēģināt izmantot komandu bc? ir programmēšanas valoda, kas izstrādāta pēc iespējas precīzāk, iekļūstot tajā, tas ir tikai jādara 2^64, varbūt tas to atrisinās 🙂 dari zināmu, kā gāja, sveicieni

      . Reālā vērtība ir 18 446 744 073 709 551 616, bet mēs atņemam 1, jo 0 tiek skaitīta kā iespējamā vērtība 🙂

      1.    tiririri teica

        Paldies, es aprēķināju, ka ar jaudas kalkulatoru, kuru atradu tīklā (https://es.calcuworld.com/calculadoras-matematicas/potencias/), un tādu rezultātu tas man deva.
        Jā, es jau izmēģināju komandu bc, un tā man efektīvi piešķir jūsu pierakstīto vērtību.

  16.   tiririri teica

    Sveiki vēlreiz, attēls, kurā jūs atsaucaties uz limits.h bibliotēku, ir ļoti mazs un to nevar nolasīt (vismaz es to nevarēju izlasīt, jo es redzu, ka visi to darīja, šķiet), un, tā kā es to nesaprotu Es vairs neturpinu lasīt. Es nezinu, vai jūs to varētu mainīt, es ceru, ka es jūs ar to neuztraucu.

    1.    KrissADR teica

      Jūs varat izmēģināt mobilo versiju, tās izskatās mazliet skaidrākas, tā ir WordPress tēma: / no otras puses, visas C galvenes var atrast mapē / usr / include /, šajā gadījumā jūs varat izvēlēties to lasīt tieši, ja tas ir vieglāk 🙂 Es mēģināšu augšupielādēt lielāku attēlu, lai redzētu, vai tas palīdz 🙂

      1.    tiririri teica

        Paldies, es domāju, ka man ir jābūt pacietīgam pret to, hehe

  17.   Katekjo teica

    Paldies par rakstu, jo tagad es nedaudz labāk sapratu valodas mainīgos un attēlojuma diapazonu, bet tagad es domāju, ka man vajadzētu sākt izmantot bibliotēku "stdint.h", jo viņi iesaka to izmantot, programmējot c, jo man bija tika mācīts vecajai skolai, jo atmiņa bija dārga, un ar to, kas tika izmantots, bija jābūt uzmanīgam

    1.    KrissADR teica

      Katekyo nav iemesla, noteikti ir labāk izmantot standarta bibliotēku, taču es varu jums apliecināt, ka labāk ir zināt, kas atšķir uint_least8_t no uint_fast8_t un tas tiek panākts, zinot primitīvos datu tipus, kas bija mērķis no ieraksta 🙂 Liels paldies par komentāru un raksta izlasīšanu, sveicieni

  18.   uzvarētājs teica

    : Vai arī meistarīgs paskaidrojums! Es zināju daļu no jēdzieniem, bet no šī amata es gūstu daudz jaunu zināšanu

    1.    KrissADR teica

      Liels paldies Viktoram 🙂 cik labi, ka raksts var palīdzēt, sveicieni

  19.   Guille teica

    Man ļoti patika Python, lai atvieglotu programmēšanu, es redzēju kursu http://zetcode.com/gui/pyqt4/ Man patika pēdējais tetris par: http://zetcode.com/gui/pyqt4/thetetrisgame/
    Es vasaras laikā retušēju šo tetrisu, lai pamazām, bet ļoti izklaidējoši liktu punktus, daudzspēlētājus un mūziku.

    1.    KrissADR teica

      Sveiks, Guille, noteikti ir ļoti izklaidējoši redzēt, kā programmatūra, pie kuras strādājat, pamazām aug 🙂 tā ir nesalīdzināma pieredze, un vēl jo vairāk, ja kādam šķiet, ka jūsu izstrādātais ir noderīgs, tas ir, no citas pasaules 😀 liels paldies koplietošanai 🙂

      1.    Guille teica

        To, kuru es darīju, esmu augšupielādējis (mūzikai 30 MB) http://guillermo.molleda.com/Tetris9.7z
        Katram spēlētājam ir jākonfigurē atšķirīgs sākotnējais ātrums vai, ja jūs atsākat punktus pēc jaunas spēles,…, un manām divām meitām ir trīs spēlētāji, kas spēlē ar mani. Tas pat izraisa atkarību.