Kintamieji 101: kompiuterio žinojimas

Deja, mačiau, kad nedaugelis nori išmokti programuoti šį 2018 m., Bet net jei būčiau tik perskaičiusi savo ankstesnis straipsnis žmogus ir po kiek laiko sugeba išsiųsti įsipareigojimą nemokamam programinės įrangos projektui, būčiau patenkinta savo darbu 🙂

Tiems, kurie mėgsta saugumą, pažadu, kad toliau bus įrašas apie saugumą 🙂, todėl visi džiaugiasi, jei kas nors nori sužinoti ką nors kito (pvz., „Git“, serverio administravimą ar ką aš žinau: p), arba pakomentuoti kai kuriomis kitomis temomis, į kurias komentarų laukelyje negalima atsakyti paprastai, praneškite man ir pamatysime, kaip galime tai padaryti 😉

Na, dabar, jei kalbėsime apie savo dalyką, anksčiau kalbėjome apie spausdinimą ir kad tai buvo susiję su tuo, kaip mes išsaugome savo kintamuosius programoje, dabar mes šiek tiek apžvelgsime tai, kas vyksta viduje, ir tikiuosi, kad tai gali būti pakankamai aiškus.

bitai

Manau, kad tai yra tema, prie kurios visada prisiliečiu rašydama apie programavimą, be abejo, tai mane žavi ir tai padėjo suprasti daugelį dalykų, dabar pabandysiu šiek tiek paaiškinti, kaip jie yra, kaip jie skaitomi ir kam jie skirti 🙂

Pagalvokite apie šviesos jungiklį, kai grandinė uždaryta, mes turime a 0 ekrane, kai keičiame jungiklio padėtį, nes a 1🙂 paprasta, ar ne?

Dabar a 0 ir 1 jie gali reikšti daug ką, viskas priklauso nuo kūrybiškumo, su kuriuo jūs jį naudojate, tarkime, aš noriu žinoti, ar kas nors eina į šiaurę ar pietus, 1 gali reikšti šiaurę ir 0, sakykim, tarkim, noriu sužinoti, ar kas nors yra vyras, ar moteris, 1 tai gali būti vyras ir 0, moteris 🙂. Dabar noriu sužinoti, ar šis asmuo yra jaunas, ar senas (> 22), 0 gali reikšti jaunas ir 1, aukštesnis. Toliau įsivaizduokime ... Ar turite naminių gyvūnėlių? 1 Aš sakyčiau taip, o 0 Sakyčiau ne Dabar noriu, kad su manimi perskaitytumėte šią eilutę:

1001

Tai trumpas būdas pasakyti ...

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

kuris labai skiriasi nuo:

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

baitai

Dabar eikime dar vienu žingsniu, išmokime skaityti baitus. Baitas yra 8 bitų seka, kuri skaitoma iš dešinės į kairę ir kiekviena 1 atstovauja 2 pakeltas į n Kur n yra bitų padėtis. Kadangi tai skamba kaip kinų kalba, pateikime nedidelį pavyzdį 🙂

01001011 Mes turime šį baitą, dabar eisime iš dešinės į kairę (<-). Aš juos padėsiu iš viršaus į apačią, kad galėčiau parašyti jų reikšmę:

1: antgalis, kai yra padėtyje 0 rodo, kad šie 2 yra pakelti iki nulio arba 2^0. Tai, ką mes žinome, yra lygiavertis 1.

1: antras antgalis, dabar padėtis 12^1 kas yra tas pats, kas sakyti 2

0: trečias bitas ... taip turėtų būti 2^2, bet kadangi jis neįjungtas, ketiname jį palikti 0

1: ketvirtas bitas, 2^3 u 8 ????

0: tokspat 0

0: kita 0

1: dabar mes esame 2^6 o 64

ir galiausiai 0 , mes jau žinome, ką tai reiškia 🙂, dabar mes pridėsime savo rezultatus ir palyginsime juos su šia lentele 🙂 75 taigi ieškokime jo stulpelyje Dešimtainis ir pamatysime, kas pasirodys vežimas

„Ascii“ lentelės vaizdo rezultatas

Mes turime vieną K!! Sveikiname, jūs jau mokate skaityti dvejetainiais failais 🙂 Bet pats įžūliausias gali pastebėti, kad mes taip pat gavome dešimtainį skaičių ir kad jis turi ribą (kai visos reikšmės yra 1) Ši riba yra numeryje 255.

Word

Dabar man pasakys ne vienas, bet ką daryti, jei man reikia didesnio nei 255? ar kur galėčiau rasti kitų personažų, tokių kaip japonai? Na, atsakymas yra paprastas, sudėkime 2 bytes. Dabar, kai turime du, galimas derinių skaičius yra 2^16 o 65536 galimi rezultatai, pvz 0 yra vienas iš tų, maksimalus įmanomas yra 65535. Ar tas skaičius skambina? Pamenate didžiausią „Linux“ sistemos prievadų skaičių? Palieku jiems namų darbus 😉

Dvigubas žodis ir keturvietis žodis

Matematikos požiūriu yra ir specifinių formatų, dvigubas žodis yra, kaip daugelis jau įsivaizdavo 2 word o 4 bytes (o 32 bits) informacijos, tas pats, kas sakyti:

11111111111111111111111111111111 į 0 a 4 294 967 295

Šiuo metu daugeliui kils klausimas, kas nutiks su neigiamais skaičiais, tai yra, kažkur, kur jie turi būti svarstomi, tiesa? Kad galėtų išsaugoti neigiamą skaičių, procesoriaus kūrėjai pasirinko užimti pirmąjį kairėje esantį bitą kaip ženklo vertę. Tai reiškia, kad jei pirmasis bitas yra 0 mes kalbame apie teigiamą skaičių, bet jei jis yra 1 turime neigiamą. Dabar pažiūrėkite, kodėl bitai yra tokie ypatingi, kad jie gali būti visi, ko norite 😀

Bet tai akivaizdžiai palieka mums mažiau galimybių dauginti! Taigi mūsų0 a 4 294 967 295 tampa:

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

Dabar daugelis iš mūsų jau turime 64 bits, ir tai yra a vertė keturkampis žodis, mes galime turėti vertes nuo 0 a 18 446 744 073 709 551 615. Tai didelis skaičius 🙂

Kodėl 8 bitų?

Tai įdomu ne vienam, o atsakymas yra į aparatinę įrangą. Nuo pat pradžių procesoriams reikėjo duomenų, kad galėtų atlikti operacijas. Duomenys saugomi kompiuterio atmintyje ir kiekvieną kartą, kai to reikalauja procesorius, jis naudojasi duomenų magistralėmis. Senovėje šie magistralės per vieną ciklą galėjo perduoti ne daugiau kaip 8 bitus, tai reiškia, kad maksimalus ir efektyviausias būdas perkelti duomenis buvo sugrupuoti 8 bitus ir siųsti juos procesoriui.

Laikui bėgant, iki šiol procesoriai sukūrė galimybę perkelti 16, 32 ir… 64 bitus.

Kuo tai susiję su spausdinimu?

Dabar esame toje vietoje, kur visa tai yra prasminga. 🙂 Spausdinimas yra savybė, kurią programavimo kalbos naudoja šioms atminties vietoms įvardyti. Visi kintamieji turi savo atitikmenį viename iš šių duomenų tipų, nesvarbu, kaip jie vadinami. Tai yra žinoma kaip primityvūs duomenų tipaiKiekviena griežtai įvesta kalba supranta šias vertybes ir jų atstovaujamą kiekį. Pavyzdžiui, C mes turime biblioteką limits.h kuris parodo mums didžiausią ir mažiausią primityvių reikšmių kiekį.

Pažiūrėkime, kas atsitiks, jei bandysime sulaužyti vieną iš vertybių:

Savo. Christopheris Diazas Riverosas

Dešinėje turime failo reikšmes limits.h ir kairėje mes paėmėme vieną iš šių verčių (unsigned short int) ir priskyrėme didesnį skaičių nei atitinkamas. Todėl kompiliatorius mus įspėja, kad mes netinkamai naudojame atmintį, nes dvejetainė forma 66666 negali tilpti į dvejetainę formą 65535. Tai veda mus į pamoką spektaklis kai programuojame, jei jūsų vertė laikui bėgant nedaug augs arba jei jums nereikia tokių didelių reikšmių, kaip dvigubai o keturkampis žodisNaudojant teisingą tipą, sumažėja atminties, kurios reikalauja procesorius, o tai reiškia didesnį duomenų gavimo greitį, jei jie yra gerai apskaičiuoti.

Vertėjo žodžiu tai yra lengviau dėl numanomos konversijos. CKadangi mes apibrėžiame kintamąjį tokiomis kalbomis kaip „javascript“ ar „Python“, vertėjas yra atsakingas už supratimą, koks jis yra, ir paskirsto pakankamai atminties operacijoms atlikti. Pažiūrėkime paprastą pavyzdį 🙂

Savo. Christopheris Diazas Riverosas

Kaip matote, mes neturime aiškinti pitono vertėjui mūsų kintamojo tipo, nes jis atsakingas už tipo priskyrimą ir išsaugojimą atmintyje 🙂

Žinokite savo kintamuosius

Tai priklauso nuo kalbos ir diegimo, kurį ketinate naudoti, tipo, tačiau pirmas žingsnis norint užprogramuoti yra išmokti kintamuosius, kuriuos galite naudoti you Suprasdami kintamuosius, galėsite juos naudoti efektyviai ir logiškai saugoti informaciją (kurią teikia vartotojas arba sistema). Tai yra pirmas žingsnis programavimo laipteliuose ir, tikiuosi, perskaitę šį straipsnį, jūs geriau suprasite, kaip veikia jūsų kompiuteris ir kaip jis kaupia informaciją. Tai bus su manimi iki kito straipsnio, nepamirškite palikti savo komentarų, kad pamatytumėte, ar jums reikia sustiprinti ar pakomentuoti kokį nors konkretų punktą. Cheers


41 komentarai, palikite savo

Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.

  1.   luis sakė

    Gerai parašyta, glausta ir aiški, tuo pat metu įdomi visoms auditorijoms. Gerai padirbėjai.

    1.    ChrisADR sakė

      Labai ačiū, linkėjimai 🙂

  2.   Jonas Jėzus sakė

    Puikus paaiškinimas. Tu mašina.

    1.    ChrisADR sakė

      Ačiū

  3.   Rubenas sakė

    Labai gerai paaiškinta ačiū

    1.    ChrisADR sakė

      Ačiū jums, kad perskaitėte ją visą 🙂

  4.   Diegas sakė

    Puiku, ačiū už indėlį. Pasinaudojus dvejetainiu klausimu, yra galimybė, kad suteiksite mums klasę IP, potinklio ir pan. Suprantu, kad tai nėra programavimo klausimas, tačiau visada buvo laukiama gero šios problemos paaiškinimo.
    Vėlgi, ačiū už paaiškinimą

    1.    ChrisADR sakė

      Sveiki, Diego, tai galima padaryti 🙂 pasakyti tiesą, aš taip pat nesigilinau į šią temą, tačiau nėra geresnio tyrimo būdo, nei ieškant ką nors apie tai pasidalinti straipsnyje 🙂 Paliksime jį sąrašui nes kitame įraše jau yra tema ir ji bus susijusi su grūdinimu. Sveikinimai 🙂

  5.   pedro sakė

    Jūs esate puikus mokytojas ir labai dosnus mokydamas to, ką žinote. Sveikiname ir ačiū.

    1.    ChrisADR sakė

      Labai ačiū jums Pedro 🙂 Aš vis dar ieškau vietų, kur mokyti, deja, čia, Peru, sunku, kai turite tik techninį profesinį išsilavinimą, todėl dabar matau galimybę čia tęsti universitetines studijas arba kur galėčiau ar net kreiptis į užsieniečio magistro laipsnį, kuris žino, galbūt kažkas panašaus netrukus bus suteikta 🙂, bet tikrai dėstymas yra tai, kas daro mano dieną 🙂

  6.   kažkas sakė

    Nebuvau skaitęs geresnio temos paaiškinimo, pirmasis pavyzdys yra puikus

    nors nebuvau girdėjęs to žodžio (pvz., 16 bitų kintamųjų), dvigubo žodžio ar keturračio žodžio

    nesvarbu, kad „aš jau programuoju“, įrašai įdomūs. Jei kyla kokių nors problemų, įrašas turi naudoti C (limits.h) kaip kintamųjų dydžių pavyzdį, C turi mažiausiai specifinę specifikaciją

    1.    ChrisADR sakė

      Sveiki, kažkas, labai ačiū, kelyje pateikiau pavyzdį 😛, nes tai tikrai žinomi duomenys tiems, kurie skaitė šiek tiek Asamblėjos, ir tai supranta procesorius 🙂 hahaha tikrai C nėra labai specifinis, bet manau, kad taip yra dėl to, kad perkeliamumas ir skirtingos jo palaikomos architektūros buvo tokios skirtingos, kad C turi pritaikyti kiekvieno tipo procesorius, kad būtų tikrai nešiojamas
      Sveikinimai ir ačiū už pasidalinimą.

  7.   Sergio sakė

    Būtų įdomu, jei ši pamokų serija būtų paremta rūdimis, manau, kad tai yra viena iš įdomiausių kalbų, kurios yra kuriamos šiandien.
    Aš esu už jo, bet pripažįstu, kad tai yra sunki kalba, bet su didele ateitimi ...
    Laukiu kitų jūsų straipsnių, jie tikrai įdomūs.
    Sveikinimai.

    1.    ChrisADR sakė

      Sveiki, Sergio, tikrai būtų įdomu, girdėjau, kad GNOME planuoja įdiegti „Rust“ pagal savo programų rinkinį, aš dar nemačiau viso jo masto, bet artėja migracija.
      Kalbant apie kalbas, aš asmeniškai vis dar mokausi C, noriu, kad per ateinančius kelis mėnesius galėčiau pradėti vystytis branduolyje, ir aš norėčiau išsamiai išmokti keletą kalbų, prieš pradėdamas peržiūrėti naujas, bet galiu tikrai ieškokite kažko įdomaus ir padarykite keletą pavyzdžių „Rust“, nes jo dokumentacija savaime atrodo gana gerai.
      Sveikinimai ir ačiū už pasidalinimą 🙂

  8.   Davidas sakė

    Labai geri paaiškinimai tiek šiame, tiek ankstesniame straipsnyje. Tikiuosi, kad tęsite šią temą, kuri man atrodo labai įdomi.

    1.    ChrisADR sakė

      Sveiki, Davidai, aš taip pat tikiuosi ir toliau rašyti ir ypač motyvuoti žmones dalyvauti naudojantis nemokama programine įranga. Dabar yra tiek daug projektų ir poreikių, kad būtų šaunu turėti keletą papildomų rankų
      saludos

  9.   Mart sakė

    Ar galėtumėte parašyti įrašą apie Tiuringo mašiną?

    1.    ChrisADR sakė

      Sveiki, Martai, manau, kad kai kuriuose komentaruose mes jį palietėme anksčiau, tiesa? Aš tikiu, kad galiu sudaryti ką nors įdomaus šia tema: pažiūrėkime, kas gali pasirodyti. Sveikinimai ir ačiū, kad perskaitėte visus mano straipsnius, nuo pat pirmos dienos iki šiandien visuomet mačiau jus besidomintį 🙂

  10.   ALLANAS LARA sakė

    Oho, labai ačiū, koks geras paaiškinimas.

    saludos

    1.    ChrisADR sakė

      Labai ačiū Allano linkėjimams

  11.   Ramonas Hidalgo sakė

    Aš perskaičiau tavo ankstesnį įrašą! Labai ačiū už paaiškinimą, nors manau, kad niekada nebaigsiu suprasti žodžio.

    1.    ChrisADR sakė

      Sveiki, Ramonai, labai ačiū, kad skaitėte abu. Jei jis yra bet kokio naudojimo, žodis yra baito evoliucija, jis yra panašus į procesorius, prieš tai buvo 8 bitai, po 16 bitų ir tt ... taip yra todėl, kad kiekvieną kartą mums reikia daugiau vietos apdoroti ir didesnis greitis ar galia ... „žodis“ gimė todėl, kad „baito“ erdvė trūko, ir tas pats su „dvigubu“ ir „keturkampiu“ žodžiu the tai natūrali evoliucija verčia mus pridėti jėgą ir erdvė toliau vystytis 🙂

      saludos

  12.   Anoniminis sakė

    Šiuos 2018 metus mokausi programuoti taip arba taip, ačiū

    1.    ChrisADR sakė

      Džiaugiuosi 🙂 pasistenkite !! Cheers

  13.   Guillermo sakė

    Labai ačiū, tęskite. Aš jau moku programuoti, bet laukiu jūsų pamokymų, kad mano savamokslis programavimas yra pilnas blogos praktikos.

    1.    ChrisADR sakė

      Ačiū Guillermo 🙂 Na, tikiuosi, kad įdomių dalykų rasite ir kituose įrašuose 🙂 Sveikinimai

  14.   Edgaras sakė

    Paprastas paaiškinimas visada yra geriausias .. puikus ..
    Aš siūlyčiau git ... programuotojams tai yra pagrindinė, kai norite dirbti komandoje ir sutvarkyti savo darbą .. versijos ..

    1.    ChrisADR sakė

      Labai tikras Edgaras, bandysiu paskelbti apie tai turinį, nors pasakyti ką nors naujo yra gana sunku, nes „Git“ dokumentai jau yra gausūs, o keli dalykai jau yra išversti į kelias kalbas. Pažiūrėsiu, ką galiu padaryti, sveikinimus ir padėką už pasidalinimą

  15.   tiririri sakė

    Sveiki, ar skaičius nuo 0 iki 18 446 744 073 709 551 615 atitinka 64 bitų dešimtainę reikšmę, ar jis reiškia kitą vertę? Na, apskaičiuojant 2 ^ 64 galią, gaunamas rezultatas: 18 446 744 073 709 552 000.

    1.    ChrisADR sakė

      Sveiki, Tiririri, manau, kad turite apvalinimo problemą, galite pabandyti naudoti komandą bc? yra programavimo kalba, sukurta kuo tiksliau, ją patekus reikia padaryti 2^64, gal tai išspręs 🙂 pranešk man, kaip sekėsi, sveikinimai

      . Tikroji vertė yra 18 446 744 073 709 551 616, bet mes atimame 1, nes 0 yra galimas dydis 🙂

      1.    tiririri sakė

        Ačiū, aš apskaičiavau, kad naudodamas galios skaičiuoklę, kurią radau tinkle (https://es.calcuworld.com/calculadoras-matematicas/potencias/) ir tai buvo rezultatas, kurį man davė.
        Taip, aš jau išbandžiau komandą bc, ir ji man suteikia vertę, kurią užsirašėte.

  16.   tiririri sakė

    Sveiki dar kartą, vaizdas, kuriame nurodote limit.h biblioteką, yra labai mažas ir jo negalima perskaityti (bent jau aš negalėjau jo perskaityti, nes matau, kad visi taip padarė, atrodo), ir kadangi aš jo nesuprantu Nebetęsiu skaitymo. Nežinau, ar galėtum tai pakeisti, tikiuosi, kad tavęs tuo netrikdžiau.

    1.    ChrisADR sakė

      Galite išbandyti mobiliąją versiją, kuri atrodo šiek tiek aiškesnė, tai yra „WordPress“ tema: / kita vertus, visas C antraštes galite rasti / usr / include /, šiuo atveju galite pasirinkti ją perskaityti tiesiogiai, jei norite tai paprasčiau try Pabandysiu įkelti didesnį vaizdą, ar jis nepadės 🙂

      1.    tiririri sakė

        Ačiū, manau, kad turėčiau būti kantrus dėl šito, he he.

  17.   Katekyo sakė

    Ačiū už straipsnį, nes dabar šiek tiek geriau supratau kalbos kintamuosius ir pateikimo diapazoną, bet dabar manau, kad turėčiau pradėti naudoti biblioteką „stdint.h“, nes jie rekomenduoja ją naudoti programuojant „c“, nes turėjau buvo mokomi senosios mokyklos, nes atmintis buvo brangi, todėl reikėjo būti atsargiems su tuo, kas buvo naudojama

    1.    ChrisADR sakė

      „Katekyo“ nėra jokios priežasties, be abejo, geriau naudoti standartinę biblioteką, tačiau galiu jus patikinti, kad geriau žinoti, kuo uint_least8_t skiriasi nuo uint_fast8_t ir tai pasiekiama žinant primityvius duomenų tipus, o tai buvo tikslas įrašo 🙂 Labai ačiū už komentarą ir perskaitytą straipsnį, sveikinimai

  18.   nugalėtojas sakė

    : Arba meistriškas paaiškinimas! Aš žinojau dalį sąvokų, bet iš šio įrašo gaunu daug naujų žinių

    1.    ChrisADR sakė

      Labai ačiū Viktorui, kaip gerai, kad straipsnis gali būti naudingas, sveikinimai

  19.   Guille sakė

    Man labai patiko „Python“, kad būtų lengviau programuoti, mačiau kursą http://zetcode.com/gui/pyqt4/ Man patiko paskutinis tetris apie: http://zetcode.com/gui/pyqt4/thetetrisgame/
    Šį tetrį aš retušavau vasaros metu, kad po truputį, bet labai įdomu įdėčiau taškų, daugelio žaidėjų ir muzikos.

    1.    ChrisADR sakė

      Sveiki, Guille, tikrai labai smagu matyti, kad programinė įranga, su kuria dirbate, auga po truputį 🙂 tai yra nepalyginama patirtis, o tuo labiau, kai kam nors atrodo tai, ką jūs kuriate, yra naudinga, tai yra iš kito pasaulio 😀 labai ačiū už dalijimąsi 🙂

      1.    Guille sakė

        Į tą, kurį padariau, įkėliau (30 MB muzikai) http://guillermo.molleda.com/Tetris9.7z
        Kiekvienam žaidėjui turite sukonfigūruoti skirtingą pradinį greitį arba, jei iš naujo paleidžiate taškus po naujo žaidimo,… ir yra trys žaidėjai, kuriuos gali žaisti dvi mano dukros. Tai netgi sukelia priklausomybę.