Veranderlikes 101: Kennis van u rekenaar

Ongelukkig het ek gesien dat nie baie hierdie 2018 wil leer programmeer nie, maar selfs al het ek dit net gelees vorige artikel 'n persoon en na 'n rukkie 'n verbintenis tot 'n gratis sagtewareprojek kan stuur, sal ek tevrede wees met my werk 🙂

Vir diegene wat van sekuriteit hou, belowe ek u dat die volgende 'n boodskap oor veiligheid sal wees 🙂 sodat almal gelukkig is, as iemand iets anders wil leer (soos git, bedieneradministrasie, of wat weet ek: p), of om kommentaar te lewer op 'n ander onderwerp wat nie op 'n eenvoudige manier in die kommentaarblokkie beantwoord kan word nie, laat my weet en ons sien hoe ons dit kan werk 😉

Nou, as ons nou na ons ding gaan, het ons voorheen gepraat oor tik, en dat dit te make het met die manier waarop ons ons veranderlikes in 'n program stoor, gaan ons nou 'n bietjie hersien wat binne gebeur en hopelik kan dit wees duidelik genoeg.

stukkies

Ek dink dit is 'n onderwerp wat ek altyd aanraak as ek oor programmering skryf, dit is beslis iets wat my fassineer en wat my gehelp het om baie dinge te verstaan. Nou sal ek probeer om 'n bietjie te verduidelik hoe dit is, hoe dit gelees word en waarvoor dit is 🙂

Dink aan 'n ligskakelaar, as die stroombaan gesluit is, het ons 'n 0 op die skerm wanneer ons die posisie van die skakelaar verander, omdat a 1🙂 eenvoudig is dit nie?

Nou 'n 0 en 'n 1 Dit kan baie dinge beteken, dit hang alles af van die kreatiwiteit waarmee u dit neem, veronderstel ek wil weet of iemand na die Noorde of die Suide gaan, 1 kan noord beteken en 0kom ons sê ek wil weet of iemand 'n man of 'n vrou is, 1 dit kan 'n man wees en 0, vrou 🙂. Nou wil ek weet of hierdie persoon jonk of oud is (> 22), 0 kan beteken jong en 1, hoër. Laat ons maar dink ... Het u troeteldiere? 1 Ek sou ja sê, terwyl 0 Ek sou nee sê Nou wil ek hê dat u die volgende reël saam met my moet lees:

1001

Dit is die kort manier om te sê ...

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

wat baie verskil van:

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

grepe

Laat ons nou 'n stap verder gaan, laat ons leer hoe om grepe te lees. 'N Byte is die volgorde van 8 bisse, wat van regs na links en elk gelees word 1 verteenwoordig 'n krag van 2 opgewek tot die n waar n is die posisie van die bietjie. Kom ons stel 'n klein voorbeeld As aangesien dit soos Chinees klink

01001011 Ons het hierdie byte, nou gaan ons van regs na links (<-) Ek gaan dit van bo na onder plaas om die betekenis daarvan te kan skryf:

1: die bietjie wanneer dit in posisie is 0 dui aan dat ons die volgende 2 op nul of verhoog het 2^0. Hierdie bron wat ons ken is gelykstaande aan 1.

1: die tweede bietjie, nou die posisie 12^1 wat dieselfde is as om te sê 2

0: derde bietjie ... dit behoort te wees 2^2, maar aangesien dit nie aan is nie, gaan ons dit aanlaat 0

1: vierde bietjie, 2^3 u 8 🙂

0: dieselfde as 0

0: ander 0

1: nou is ons in 2^6 o 64

en uiteindelik 0 , ons weet reeds wat dit beteken 🙂 nou gaan ons ons resultate byvoeg en vergelyk met die volgende tabel 🙂 Ons het 'n 75 kom ons kyk daarna in die kolom Desimale en ons sal sien wat in wa

Beeldresultaat vir ascii-tabel

Ons het een K!! Baie geluk, u weet al hoe om dit in binêre te lees 🙂 Maar die saggiesste het miskien opgemerk dat ons ook 'n desimale getal gekry het en dat dit 'n limiet het (as alle waardes 1) Die limiet word in die getal aangetref 255.

Word

Nou sal meer as een my vertel, maar wat as ek 'n nommer nodig het groter as 255? of waar vind ek ander karakters soos die Japannese? Die antwoord is eenvoudig, laat ons saamstel 2 bytes. Noudat ons twee het, is die moontlike aantal kombinasies wat ons het 2^16 o 65536 moontlike uitkomste, soos 0 is een van die, is die maksimum moontlik 65535. Lui daardie nommer? Onthou u die maksimum aantal poorte op 'n Linux-stelsel? Ek los vir hulle huiswerk 😉

Dubbelwoord & vierwoord

Vir die meer wiskundige is daar ook spesifieke formate, dubbele woord bevat, soos baie mense al gedink het 2 word o 4 bytes (o 32 bits) van inligting, dieselfde as om te sê:

11111111111111111111111111111111 aan 0 a 4 294 967 295

Op hierdie stadium sal baie mense wonder wat met negatiewe getalle gebeur, dit wil sê, êrens moet dit oorweeg word, of hoe? Om 'n negatiewe getal op te slaan, het die verwerkers ontwikkelaars gekies om die eerste bietjie links as tekenwaarde in te neem. Dit beteken dat as die eerste bietjie is 0 ons praat van 'n positiewe getal, maar as dit wel is 1 ons het 'n negatiewe. Kyk nou waarom die stukkies so spesiaal is, dit kan wees wat u wil 😀

Maar dit laat ons uiteraard met een posisie minder om die vermenigvuldiging uit te voer! So ons0 a 4 294 967 295 word:

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

Baie van ons het dit nou al 64 bits, en dit is die waarde van a vierwoord, kan ons waardes hê wat wissel van 0 a 18 446 744 073 709 551 615. Dit is 'n groot getal 🙂

Hoekom 8 bit?

Dit is iets waaraan meer as een mens kan wonder, en die antwoord is in die hardeware. Van die begin af het verwerkers data nodig om bewerkings te kan uitvoer. Die data word in die geheue van die rekenaar gestoor en elke keer as die verwerker dit benodig, gebruik dit die databusse om dit te kry. In antieke tye kon hierdie busse 'n maksimum van 8 bisse per siklus kommunikeer, dit beteken dat die maksimum en doeltreffendste manier om data te skuif, 8 bits was om dit na die verwerker te stuur.

Met verloop van tyd, tot vandag toe, het verwerkers die vermoë ontwikkel om 16 bisse, 32 bits en ... 64 bits te beweeg.

Wat het dit met tik te doen?

Ons is nou op die punt waar alles sinvol is 🙂 Tik is 'n eienskap wat programmeertale gebruik om hierdie geheuespasies te benoem. Al die veranderlikes het hul eweknie in een van hierdie soorte data, ongeag wat hulle genoem word. Dit staan ​​bekend as primitiewe datatipesElke taal wat sterk getik is, het sy begrip van hierdie waardes en die hoeveelheid wat dit voorstel. Byvoorbeeld in C het ons die biblioteek limits.h wat ons die maksimum en minimum hoeveelheid primitiewe waardes wys.

Kom ons kyk wat gebeur as ons een van die waardes probeer breek:

Eie. Christopher Diaz Riveros

Aan die regterkant het ons die waardes van die lêer limits.h en links het ons een van hierdie waardes geneem (unsigned short int) en ons het 'n nommer hoër as die ooreenstemmende nommer toegeken. As gevolg hiervan waarsku die samesteller ons dat ons geheue misbruik omdat die binêre vorm van 66666 kan nie in die binêre vorm van 65535. Dit lei ons na 'n les in prestasie wanneer ons programmeer, as u waarde mettertyd nie veel gaan groei nie, of as u nie so groot waardes benodig as dié van 'n verdubbel o vierwoordAs u die regte tipe gebruik, word die hoeveelheid geheue wat deur die SVE aangevra word, verminder, wat 'n groter spoed benodig om data te verkry as dit goed bereken word.

Aan die tolkant is dit makliker as gevolg van die implisiete bekerings. CAs ons 'n veranderlike in tale soos javascript of Python definieer, is die tolk verantwoordelik om te verstaan ​​watter tipe dit is, en genoeg geheue-ruimte toe te ken om die bewerkings uit te voer. Kom ons kyk na 'n eenvoudige voorbeeld 🙂

Eie. Christopher Diaz Riveros

Soos u kan sien, hoef ons nie die tipe van ons veranderlike aan die python-tolk te verduidelik nie, want dit sorg vir die toekenning van 'n tipe en om dit in die geheue op te slaan 🙂

Ken u veranderlikes

Dit hang af van die taal en tipe implementering wat u gaan gebruik, maar die eerste stap om te kan programmeer, is om die veranderlikes te leer wat u kan gebruik 🙂 Sodra u die veranderlikes verstaan, sal u in staat wees om dit doeltreffend en logies te gebruik om inligting op te slaan (voorsien deur 'n gebruiker of deur die stelsel). Dit is die eerste stap op die programmeringsleer en hopelik sal u 'n beter begrip hê van hoe u rekenaar werk en hoe dit inligting stoor. Dit sal tot die volgende artikel by my wees. Onthou om u kommentaar te lewer om te sien of u enige spesifieke punt moet versterk of kommentaar lewer. Cheers


Die inhoud van die artikel voldoen aan ons beginsels van redaksionele etiek. Klik op om 'n fout te rapporteer hier.

41 kommentaar, los joune

Laat u kommentaar

Jou e-posadres sal nie gepubliseer word nie. Verpligte velde gemerk met *

*

*

  1. Verantwoordelik vir die data: Miguel Ángel Gatón
  2. Doel van die data: Beheer SPAM, bestuur van kommentaar.
  3. Wettiging: U toestemming
  4. Kommunikasie van die data: Die data sal nie aan derde partye oorgedra word nie, behalwe deur wettige verpligtinge.
  5. Datastoor: databasis aangebied deur Occentus Networks (EU)
  6. Regte: U kan u inligting te alle tye beperk, herstel en verwyder.

  1.   Luis dijo

    Goed geskryf, bondig en duidelik, terselfdertyd interessant vir alle gehore. Mooi werk.

    1.    ChrisADR dijo

      Baie dankie, groete 🙂

  2.   Johannes Jesus dijo

    Goeie verduideliking. Jy is 'n masjien.

    1.    ChrisADR dijo

      Dankie

  3.   Ruben dijo

    Baie goed verduidelik dankie

    1.    ChrisADR dijo

      Dankie aan u dat u dit volledig gelees het 🙂

  4.   Diego dijo

    Uitstekend, dankie vir die insette. En om voordeel te trek uit die binêre probleem, is daar die moontlikheid dat u ons 'n klas IP, subnet, ens. Ek verstaan ​​dat dit nie 'n programmeringskwessie is nie, maar dat daar nog altyd 'n goeie verduideliking van die kwessie was.
    Weereens, dankie vir u verduideliking

    1.    ChrisADR dijo

      Hallo Diego, dit kan gedoen word 🙂 om die waarheid te sê dat ek ook nie veel oor die onderwerp gegaan het nie, maar daar is geen beter manier om dit te ondersoek nie as om na iets te soek om dit in 'n artikel te deel 🙂 Ons sal dit vir die lys agterlaat, want die volgende berig het reeds 'n onderwerp en dit gaan met verharding. Groete 🙂

  5.   Peter dijo

    U is 'n uitstekende onderwyser en baie vrygewig om te leer wat u weet. Baie geluk en dankie.

    1.    ChrisADR dijo

      Baie dankie Pedro 🙂 Ek is nog steeds op soek na onderrigplekke, ongelukkig hier in Peru is dit moeilik as u slegs 'n tegniese professionele graad het, dus kyk ek nou na die moontlikheid om my universiteitstudie hier voort te sit of waar ek 'n magistergraad in of selfs kan toepas die vreemdeling, wie weet, miskien sal binnekort so iets gegee word 🙂 maar beslis onderrig is iets wat my dag maak 🙂

  6.   iets dijo

    Ek het nie 'n beter verduideliking van die onderwerp gelees nie, die eerste voorbeeld is briljant

    hoewel ek nie daardie woord (soos 16-bis veranderlikes), dubbelwoord of vierwoord gehoor het nie

    maak nie saak dat "ek reeds programmeer nie", die plasings is interessant. As daar enige probleem moet wees, is die boodskap om C (limit.h) as voorbeeld van veranderlike groottes te gebruik, C het die minste spesifieke spesifikasie wat bestaan

    1.    ChrisADR dijo

      Hallo iets 🙂 baie dankie, ek het die voorbeeld onderweg bedink 😛 want dit is beslis bekende data vir diegene wat 'n bietjie vergadering gelees het, en dit is wat die verwerker verstaan ​​🙂 hahaha C is beslis nie baie spesifiek nie, maar ek dink dit is Dit is te danke aan die feit dat die draagbaarheid en die verskillende argitekture wat dit ondersteun so uiteenlopend was dat C elke tipe verwerker moet akkommodeer om werklik draagbaar te wees 🙂
      Groete en dankie vir die deel.

  7.   Sergio dijo

    Dit sou interessant wees as hierdie reeks tutoriale op roes gebaseer was, ek dink dit is een van die interessantste tale wat vandag ontwikkel word.
    Ek is agter hom, maar ek besef dat dit 'n moeilike taal is, maar met 'n groot toekoms ...
    Ek sien uit na u volgende artikels, dit is regtig interessant.
    Groete.

    1.    ChrisADR dijo

      Hallo Sergio, dit sal beslis interessant wees. Ek het gehoor dat GNOME van plan is om Rust binne sy reeks programme te implementeer. Ek het nog nie die volle omvang daarvan gesien nie, maar 'n migrasie kom.
      Wat tale betref, leer ek persoonlik steeds C, wil ek in die volgende paar maande met die ontwikkeling van die kern kan begin en verkies om 'n paar tale in diepte te leer voordat ek nuwe tale gaan hersien, maar ek kan beslis iets interessants soek en 'n paar voorbeelde doen in Rust, aangesien die dokumentasie op sy eie redelik goed lyk.
      Groete en dankie vir die deel 🙂

  8.   David dijo

    Baie goeie verduidelikings, beide in hierdie artikel en in die vorige. Ek hoop u gaan voort met hierdie tema wat ek baie interessant vind.

    1.    ChrisADR dijo

      Hallo David, ek hoop ook om voort te gaan skryf en mense veral te motiveer om met gratis sagteware deel te neem. Daar is soveel projekte en behoeftes dat dit wonderlik sal wees om 'n paar ekstra hande te ontwikkel 🙂
      Groete

  9.   Mart dijo

    Kan u 'n boodskap lewer oor die Turing-masjien?

    1.    ChrisADR dijo

      Hallo Mart 🙂 Ek dink dat ons in die een of ander opmerking voorheen daaraan geraak het, nie waar nie? Ek is seker dat ek iets interessants oor die onderwerp kan saamstel 🙂 kom ons kyk wat kan uitkom. Groete en dankie vir die lees van al my artikels, van die eerste dag af tot vandag toe het ek u nog altyd baie geïnteresseerd gesien 🙂

  10.   ALLAN LARA dijo

    Sjoe, baie dankie wat 'n goeie verduideliking.

    Groete

    1.    ChrisADR dijo

      Baie dankie Allan 🙂 groete

  11.   ramon hidalgo dijo

    Ek het jou vorige berig gelees! Baie dankie vir die verduideliking, hoewel ek dink dat ek die woord nooit sal verstaan ​​nie.

    1.    ChrisADR dijo

      Hallo Ramon 🙂 baie dankie dat u albei gelees het. As dit van nut is, is die «woord» die evolusie van 'n byte, dit is soos die verwerkers, voordat daar 8-bits was, na 16-bits, ens. Dit is omdat ons elke keer meer ruimte benodig om te verwerk en 'n beter spoed of krag ... die 'woord' is gebore omdat die ruimte van die 'byte' tekort skiet, en dieselfde met die 'dubbele' en 'viertal' woord. Dit is die natuurlike evolusie wat ons krag en ruimte laat byvoeg om verder te ontwikkel 🙂

      Groete

  12.   anoniem dijo

    Hierdie 2018 leer ek om ja of ja te programmeer, dankie

    1.    ChrisADR dijo

      Ek is bly 🙂 probeer hard !! Cheers

  13.   Guillermo dijo

    Baie dankie, hou so aan. Ek weet al hoe om te programmeer, maar ek wag op u leerstellings dat my selfgeleerde programmering vol slegte praktyke is.

    1.    ChrisADR dijo

      Dankie Guillermo 🙂 Wel, ek hoop dat u interessante dinge ook in die volgende berigte sal vind 🙂 Groete

  14.   Edgar dijo

    'N Eenvoudige verduideliking is altyd die beste .. uitstekend ..
    Ek sou git voorstel ... vir programmeerders is dit basies as u as 'n span wil werk en u werk in orde wil bring .. die weergawes ..

    1.    ChrisADR dijo

      Baie waar Edgar, ek sal probeer om inhoud daaroor te plaas, alhoewel dit redelik moeilik is om iets nuuts te sê, want die dokumentasie met git is reeds volop en verskeie dinge is al in verskeie tale vertaal. Ek sal sien wat ek kan doen, groete en dankie vir die deel

  15.   tiririri dijo

    Hallo, stem die getal van 0 tot 18 446 744 073 709 551 615 ooreen met die 64-bis desimale waarde of verwys dit na 'n ander waarde? Wel, as u die krag van 2 ^ 64 bereken, is die resultaat wat ek kry: 18 446 744 073 709 552 000.

    1.    ChrisADR dijo

      Hallo Tiririri, ek dink jy het 'n afrondingsprobleem, jy kan die opdrag probeer gebruik bc? is 'n programmeertaal wat ontwerp is om so presies as moontlik te wees; dit is net nodig om dit binne te doen 2^64, miskien sal dit dit oplos, want laat my weet hoe dit gegaan het, groete

      . Die werklike waarde is 18 446 744 073 709 551 616, maar ons trek 1 af omdat 0 as 'n moontlike waarde tel 🙂

      1.    tiririri dijo

        Dankie, ek het dit bereken met 'n kragrekenaar wat ek op die net gevind het (https://es.calcuworld.com/calculadoras-matematicas/potencias/) en dit was die resultaat wat dit vir my gegee het.
        En ja, ek het die bc-opdrag al probeer, en dit gee my effektief die waarde wat u neergeskryf het.

  16.   tiririri dijo

    Hallo weer, die prentjie waar u na die limiete verwys. H-biblioteek is baie klein en kan nie gelees word nie (ek kon dit ten minste nie lees nie, want ek sien dat almal dit gedoen het, lyk dit) en omdat ek dit nie verstaan ​​nie, gaan ek nie meer voort nie lees. Ek weet nie of u dit sou kon verander nie, ek hoop ek het u nie daaraan gesteur nie.

    1.    ChrisADR dijo

      U kan die mobiele weergawe probeer, dit lyk 'n bietjie duideliker, dit is 'n WordPress-tema: / aan die ander kant, al die C-koppe kan gevind word in / usr / include /, in hierdie geval kan u kies om dit direk te lees as u dit is makliker 🙂 Ek sal probeer om 'n groter prentjie op te laai om te sien of dit help 🙂

      1.    tiririri dijo

        Dankie, ek dink ek moet geduldig hiermee wees, he he.

  17.   Katekyo dijo

    Dankie vir die artikel, aangesien ek die veranderlikes en omvang van die voorstelling van 'n taal 'n bietjie beter verstaan ​​het, maar nou dink ek dat ek die biblioteek "stdint.h" moet begin gebruik, aangesien hulle dit aanbeveel om in c te programmeer sedert Ek is aan die ou skool geleer, aangesien geheue kosbaar was en 'n mens moes versigtig wees met wat gebruik is

    1.    ChrisADR dijo

      Daar is geen rede vir Katekyo nie, dit is beslis beter om die standaardbiblioteek te gebruik, maar ek kan u verseker dat dit beter is om te weet wat 'n uint_leest8_t onderskei van 'n uint_fast8_t en dit word bereik deur die primitiewe datatipes te ken, wat die doel van die berig was 🙂 Baie dankie vir die kommentaar en vir die lees van die artikel, groete

  18.   victor dijo

    : Of 'n meesterlike verduideliking! Ek het 'n deel van die konsepte geken, maar ek kry baie nuwe kennis uit hierdie pos

    1.    ChrisADR dijo

      Baie dankie Victor 🙂 hoe goed dat die artikel van hulp kan wees, groete

  19.   Guille dijo

    Ek het regtig van Python gehou om programmering te vergemaklik, ek het 'n kursus gesien in http://zetcode.com/gui/pyqt4/ Ek was mal oor die laaste tetris oor: http://zetcode.com/gui/pyqt4/thetetrisgame/
    Hierdie tetris het ek gedurende 'n somer aangeraak om punte, multiplayer en musiek, bietjie vir bietjie, maar baie vermaaklik te stel.

    1.    ChrisADR dijo

      Hallo Guille, dit is beslis baie vermaaklik om te sien dat die sagteware waaraan u werk, bietjie vir bietjie groei 🙂 dit is 'n onvergelyklike ervaring, en nog meer as iemand wat u ontwikkel nuttig vind, dit wil sê uit 'n ander wêreld 😀 baie dankie vir die deel 🙂

      1.    Guille dijo

        Die een wat ek gedoen het, het ek opgelaai (30Mb vir die musiek) http://guillermo.molleda.com/Tetris9.7z
        U moet 'n ander aanvangssnelheid vir elke speler instel, of as u weer punte begin na 'n nuwe wedstryd, ... en daar is drie spelers wat my twee dogters saam met my kan speel. Dit is selfs verslawend.