Bedaŭrinde mi vidis, ke ne multaj volas lerni programi ĉi tiun 2018 🙁 sed eĉ se mi nur legis mian antaŭa artikolo homo kaj post iom da tempo povas sendi devontigon al projekto pri libera programaro, mi estus kontenta pri mia laboro 🙂
Por tiuj, kiuj amas sekurecon, mi promesas al vi, ke jenaj afiŝoj pri sekureco security do ĉiuj feliĉas, se iu volas lerni ion alian (kiel git, servila administrado, aŭ kion mi scias: p), aŭ komenti pri iu alia temo, al kiu ne eblas respondi simple en la komenta skatolo, sciigu min kaj ni vidas kiel ni povas labori ĝin 😉
Nu, nun se ni iros al nia afero, antaŭe ni parolis pri tajpado, kaj ke ĉi tio rilatas al la maniero per kiu ni konservas niajn variablojn en programo, nun ni iomete revizios tion, kio okazas interne kaj espereble ĝi povas esti sufiĉe klara.
Indekso
Bitoj
Mi pensas, ke ĉi tio estas temo, kiun mi ĉiam tuŝas, kiam mi verkas pri programado, ĝi certe estas io, kio fascinas min kaj kiu helpis min kompreni multajn aferojn, nun mi provos iomete klarigi, kiel ili estas, kiel ili estas legataj, kaj por kio ili estas 🙂
Pensu pri lumŝaltilo, kiam la cirkvito estas fermita, ni havas 0
sur la ekrano, kiam ni ŝanĝas la pozicion de la ŝaltilo, ĉar a 1
🙂 simpla ĉu ne?
Nun a 0
kaj a 1
ili povas signifi multajn aferojn, ĉio dependas de la kreivo per kiu vi prenas ĝin, supozu ke mi volas scii ĉu iu iras al la Nordo aŭ la Sudo, 1
povas signifi nordon kaj 0
, sur 🙂 ni diru, ke mi volas scii, ĉu iu estas viro aŭ virino, 1
ĝi povas esti viro kaj 0
, virino 🙂. Nun mi volas scii ĉu ĉi tiu persono estas juna aŭ maljuna (> 22), 0
povas signifi juna kaj 1
, pli alte. Ni daŭre imagu ... Ĉu vi havas dorlotbestojn? 1
Mi dirus jes, dum 0
Mi dirus ne Nun mi volas, ke vi legu la jenan linion kun mi:
1001
Jen la mallonga maniero diri ...
Una jóven mujer de no más de 22 años se dirige al norte acompañada de su mascota.
kiu tre diferencas de:
0110
o Un hombre con más de 22 años de edad se dirige solo hacia el sur.
Bajtoj
Nun ni iru unu paŝon plu, ni lernu kiel legi bajtojn. Bajto estas la vico de 8 bitoj, kiuj estas legataj de dekstre maldekstren kaj ĉiu 1
reprezentas potencon de 2
levita al la n
kie n
estas la pozicio de la bito. Ĉar ĝi sonas kiel ĉina, ni donu etan ekzemplon 🙂
01001011
Ni havas ĉi tiun bajton, nun ni iros dekstren maldekstren (<-) Mi metos ilin de supre malsupren por povi skribi ilian signifon:
1
: la iomete en pozicio 0
indikas, ke ni havas la jenajn 2 levitajn al nulo aŭ 2^0
. Ĉi tiu puto, kiun ni scias, samvaloras 1
.
1
: la dua bito, nun la pozicio 1
: 2^1
kio samas kiel diri 2
0
: tria bito ... ĉi tio estu 2^2
, sed ĉar ĝi ne funkcias, ni lasos ĝin aktiva 0
1
: kvara bito, 2^3
u 8
🙂
0
: same kiel 0
0
: alia 0
1
: nun ni estas en 2^6
o 64
kaj fine 0
, ni jam scias kion ĝi signifas 🙂 nun ni aldonos niajn rezultojn kaj komparos ilin kun la sekva tabelo 🙂 Ni havas 75
do ni serĉu ĝin en la kolumno Dekuma kaj ni vidos, kio aperas en Char
Ni havas unu K
!! Gratulon, vi jam scias legi binare 🙂 Sed la plej sagacaj eble rimarkis, ke ni ankaŭ akiris dekuman nombron, kaj ke ĝi havas limon (kiam ĉiuj valoroj estas 1
) Tiu limo troviĝas en la nombro 255
.
vorto
Nun pli ol unu diros al mi, sed se mi bezonas nombron pli grandan ol 255
? aŭ kie mi povas trovi aliajn rolulojn kiel la japana? Nu la respondo estas simpla, ni kunmetu 2 bytes
. Nun, kiam ni havas du, la ebla nombro da kombinaĵoj, kiujn ni havas, estas 2^16
o 65536
eblaj rezultoj, kiel ekzemple 0
estas unu el tiuj, la maksimumo ebla estas 65535
. Ĉu tiu numero sonorigas al iu? Ĉu vi memoras la maksimuman nombron da havenoj en Linux-sistemo? Mi lasas al ili hejmtaskon 😉
Duobla vorto kaj kvarvorto
Por la pli matematika ekzistas ankaŭ specifaj formatoj, la duobla vorto enhavi, kiel multaj eble jam imagis 2 word
o 4 bytes
(o 32 bits
) de informoj, same kiel diri:
11111111111111111111111111111111
aŭ de 0
a 4 294 967 295
Je ĉi tiu punkto multaj scivolos, kio okazas kun negativaj nombroj, tio estas, ie ili devas esti pripensitaj, ĉu ne? Por povi stoki negativan nombron, la procesoraj programistoj elektis okupi la unuan biton maldekstre kiel signovaloro. Ĉi tio signifas, ke se la unua bito estas 0
ni parolas pri pozitiva nombro, sed se ĝi estas 1
ni havas negativon. Nun vidu kial la bitoj estas tiel specialaj, ili povas esti kion ajn vi volas 😀
Sed ĉi tio evidente lasas nin kun unu malpli pozicio por fari la multiplikon! Do nia0
a 4 294 967 295
fariĝas:
-2,147,483,648
a +2,147,483,647
Nun multaj el ni jam havas 64 bits
, kaj ĉi tiu estas la valoro de a kvarvorta, ni povas havi valorojn de 0
a 18 446 744 073 709 551 615
. Tio estas granda nombro 🙂
Kial 8 bitoj?
Ĉi tio estas io, kion eble pli ol unu scivolas, kaj la respondo estas en la aparataro. De la komenco, procesoroj bezonis datumojn por povi plenumi operaciojn. La datumoj estas konservitaj en la memoro de la komputilo kaj ĉiufoje kiam la procesoro postulas ĝin, ĝi uzas la datumajn busojn por akiri ĝin. En antikvaj tempoj, ĉi tiuj busoj povus komuniki maksimume 8 bitojn po ciklo, tio signifas, ke la maksimuma kaj plej efika maniero movi datumojn estis grupigi 8 bitojn kaj sendi ilin al la procesoro.
Kun la paso de la tempo, ĝis hodiaŭ, procesoroj evoluigis la kapablon movi 16 bitojn, 32 bitojn kaj ... 64 bitojn.
Kio rilatas al tajpado?
Ni nun estas ĉe la parto, kie ĉio havas sencon. Tajpado estas eco, kiun programlingvoj uzas por nomi ĉi tiujn memorajn spacojn. Ĉiuj variabloj havas sian samrangon en unu el ĉi tiuj specoj de datumoj, negrave kiel ili nomiĝas. Ĉi tiuj estas konataj kiel primitivaj datumtipojĈiu forte tajpita lingvo havas sian koncepton pri ĉi tiuj valoroj, kaj la kvanton, kiun ili reprezentas. Ekzemple en C ni havas la bibliotekon limits.h
kiu montras al ni la maksimuman kaj minimuman kvanton de primitivaj valoroj.
Ni vidu, kio okazas, se ni provas rompi unu el la valoroj:
Propra. Christopher Diaz Riveros
Dekstre ni havas la valorojn de la dosiero limits.h
kaj maldekstre ni prenis unu el ĉi tiuj valoroj (unsigned short int
) kaj ni asignis nombron pli altan ol la responda. Rezulte la kompililo avertas nin, ke ni misuzas memoron ĉar la duuma formo de 66666
ne povas konveni en la duuma formo de 65535
. Ĉi tio kondukas nin al leciono pri elfaro kiam ni programas, se via valoro ne kreskos multe kun la tempo, aŭ se vi ne postulas valorojn tiel grandajn kiel tiuj de duobla o kvarvortaUzi la ĝustan tipon reduktas la kvanton de memoro petita de la CPU, kio implicas pli altan rapidon akiri datumojn se ĝi estas bone kalkulita.
Ĉe la interpretila flanko ĉi tio estas pli facila pro la implicaj konvertiĝoj. CKiam ni difinas variablon en lingvoj kiel Ĝavaskripto aŭ Python, la interpretisto komisias kompreni kian tipon ĝi havas kaj asigni sufiĉe da memora spaco por plenumi la operaciojn. Ni vidu simplan ekzemplon 🙂
Propra. Christopher Diaz Riveros
Kiel vi vidas, ni ne devas klarigi al la interpretisto de python la tipon de nia variablo, ĉar ĝi zorgas pri asignado de tipo kaj konservado de ĝi en memoro 🙂
Sciu viajn variablojn
Ĉi tio dependas de la lingvo kaj speco de efektivigo, kiun vi uzos, sed la unua paŝo por povi programi estas lerni la variablojn, kiujn vi povas uzi 🙂 Unufoje vi komprenos la variablojn, vi povos uzi ilin efike kaj logike por stoki informojn (provizita de uzanto aŭ de la sistemo). Ĉi tiu estas la unua paŝo sur la programa ŝtupetaro kaj espereble post legado de ĉi tiu artikolo vi pli bone komprenos kiel funkcias via komputilo kaj kiel ĝi stokas informojn. Ĝi estos kun mi ĝis la sekva artikolo, memoru lasi viajn komentojn por vidi ĉu vi devas plifortigi aŭ komenti iun specifan punkton. Saluton
41 komentoj, lasu la viajn
Bone verkita, konciza kaj klara, samtempe interesa por ĉiuj spektantoj. Bona laboro.
Koran dankon, salutojn 🙂
Bonega klarigo. Vi estas maŝino.
Dankon 🙂
Tre bone klarigita dankon
Dankon al vi, ke vi legis ĝin komplete 🙂
Bonege, dankon pro la kontribuo. Kaj utiligante la duuman aferon, eblas, ke vi povas doni al ni klason de IP, subreto, ktp. Mi komprenas, ke ĝi ne estas programa problemo, sed bona klarigo pri tiu afero ĉiam estis pritraktata.
Denove dankon pro via klarigo
Saluton Diego, oni povas fari 🙂 por diri la veron Ankaŭ mi ne multe pripensis la temon, sed ne ekzistas pli bona maniero esplori ol serĉi ion por dividi pri ĝi en artikolo 🙂 Ni lasos ĝin por la listo ĉar la sekva afiŝo jam havas temon kaj ĝi traktos malmoligon. Salutojn 🙂
Vi estas bonega instruisto, kaj tre sindona por instrui tion, kion vi scias. Gratulon kaj dankon.
Koran dankon Pedro 🙂 Mi ankoraŭ serĉas lokojn por instrui, bedaŭrinde ĉi tie en Peruo malfacilas kiam vi havas nur teknikan profesian diplomon, do nun mi rigardas la eblon daŭrigi miajn universitatajn studojn ĉi tie aŭ kie mi povas aŭ eĉ kandidatiĝi al magistro en la eksterlandano, kiu scias, eble baldaŭ ion tian oni povas doni 🙂 sed sendube instruado estas io, kio igas mian tagon 🙂 Salutojn
Mi ne legis pli bonan klarigon pri la temo, la unua ekzemplo estas brila
kvankam mi ne aŭdis tiun vorton (kiel 16-bitaj variabloj), duoblan vorton aŭ kvaropan vorton
Sendepende de "jam programado", la afiŝoj estas interesaj. Se estas iu problemo, la afiŝo devas uzi C (limoj.h) kiel ekzemplon de la variaj grandecoj, C havas la malplej specifan specifon, kiu ekzistas
Saluton io 🙂 dankegon, mi venis kun la ekzemplo survoje 😛 ĉar certe estas konataj datumoj por tiuj, kiuj legis iom de Asembleo, kaj tion komprenas la procesoro 🙂 hahaha certe C ne estas tre specifa, sed mi pensas, ke ĝi estas. Ŝuldiĝas al tio, ke porteblo kaj la malsamaj arkitekturoj, kiujn ĝi subtenas, estis tiel diversaj, ke C devas akomodi ĉiun tipon de procesoro por esti vere portebla 🙂
Salutojn kaj dankon pro interŝanĝo.
Se ne estus interese, se ĉi tiu serio de lerniloj baziĝus sur rusto, mi pensas, ke ĝi estas unu el la plej interesaj lingvoj, kiuj disvolviĝas hodiaŭ.
Mi estas malantaŭ li, sed mi rekonas, ke ĝi estas malfacila lingvo, sed kun bonega estonteco ...
Mi antaŭĝojas viajn venontajn artikolojn, ili estas vere interesaj.
Salutojn.
Saluton Sergio, certe estus interese, mi aŭdis, ke GNOME planas efektivigi Rust ene de sia aro da programoj, mi ankoraŭ ne vidis la plenan amplekson de ĝi, sed migrado venas.
Koncerne lingvojn, mi persone ankoraŭ lernas C-on, mi volas povi ekevoluigi en la kerno en la venontaj monatoj, kaj mi preferas lerni kelkajn lingvojn profunde antaŭ ol revizii novajn, sed mi povas certe serĉu ion interesan kaj faru kelkajn ekzemplojn en Rust, ĉar ĝia dokumentado aspektas sufiĉe bone memstare.
Saluton kaj dankon pro dividado 🙂
Tre bonaj klarigoj, kaj en ĉi tiu artikolo kaj en la antaŭa. Mi esperas, ke vi daŭrigos per ĉi tiu temo, kiun mi trovas tre interesa.
Saluton David, mi ankaŭ esperas plu verki kaj precipe instigi homojn partopreni per libera programaro, estas tiom multe da projektoj kaj bezonoj nun, ke havi kelkajn kromajn manojn por disvolvi estus bonege 🙂
salutoj
Ĉu vi povus fari afiŝon pri la maŝino Turing?
Saluton Mart 🙂 Mi pensas, ke en iu komento ni antaŭe tuŝis ĝin, ĉu ne? Mi certas, ke mi povas kunmeti ion interesan pri la temo 🙂 ni vidu, kio povas eliri. Saluton kaj dankon pro legado de ĉiuj miaj artikoloj, de la unua tago ĝis hodiaŭ mi ĉiam vidis vin sufiĉe interesata 🙂
Vej, dankon, kia bona klarigo.
salutoj
Koran dankon al Allan
Mi legis vian antaŭan afiŝon! Koran dankon pro la klarigo, kvankam mi pensas, ke mi neniam finos kompreni la vorton.
Saluton Ramon 🙂 dankon pro legado de ambaŭ. Se ĝi utilas, la "vorto" estas la evoluo de bajto, ĝi estas kiel procesoroj, antaŭ ol estis 8-bitoj, post 16-bitoj, ktp ... ĉar ĉiufoje ni bezonas pli da spaco por procesi kaj pli bonan rapidecon aŭ potenco ... la 'vorto' naskiĝis ĉar la spaco de la 'bajto' mallongiĝis, kaj same kun la vorto 'duobla' kaj 'kvar' 🙂 ĝi estas la natura evoluo, kiu igas nin aldoni potencon kaj spacon por daŭre disvolviĝi 🙂
salutoj
Ĉi-jare 2018 mi lernas programi jes aŭ jes, dankon
Mi ĝojas, ke mi penas !! Saluton
Koran dankon, daŭrigu tiel. Mi jam scias kiel programi sed mi atendas viajn instruojn, ke mia memlernanta programado estas plena de malbonaj praktikoj.
Dankon Vilhelmo 🙂 Nu mi esperas ke vi trovos interesajn aferojn ankaŭ en la sekvaj afiŝoj 🙂 Salutojn
Simpla klarigo ĉiam estas la plej bona .. bonega ..
Mi proponus git ... por programistoj ĝi estas baza kiam vi volas labori kiel teamo kaj ordigi vian laboron .. la versioj ..
Tre vera Edgar, mi provos afiŝi enhavon pri ĝi, kvankam estas sufiĉe malfacile diri ion novan, ĉar la git-dokumentado jam abundas kaj pluraj aferoj estas jam tradukitaj al pluraj lingvoj. Mi vidos, kion mi povas fari, salutojn kaj dankon pro dividado
Saluton, ĉu la nombro de 0 al 18 446 744 073 709 551 615 respondas al la 64-bita decimala valoro aŭ ĉu ĝi rilatas al alia valoro? Nu, kalkulante la potencon de 2 ^ 64, la rezulto, kiun mi ricevas, estas: 18 446 744 073 709 552.
Saluton Tiririri, mi pensas, ke vi havas rondigan problemon, vi povas provi uzi la komandon
bc
? estas programlingvo desegnita por esti kiel eble plej preciza, unufoje en ĝi necesas nur fari ĝin2^64
, eble tio solvos ĝin 🙂 sciigu al mi kiel ĝi iris, salutojn. La reala valoro estas 18 446 744 073 709 551 616, sed ni subtrahas 1 ĉar 0 validas kiel ebla valoro 🙂
Dankon, mi kalkulis tion per potenca kalkulilo, kiun mi trovis en la reto (https://es.calcuworld.com/calculadoras-matematicas/potencias/) kaj jen la rezulto, kiun ĝi donis al mi.
Kaj jes, mi jam provis la ordonon bc, kaj ĝi efektive donas al mi la valoron, kiun vi notis.
Saluton denove, la bildo, kie vi rilatas al la biblioteko limit.h, estas tre malgranda kaj ne legeblas (almenaŭ mi ne povis legi ĝin, ĉar mi vidas, ke ĉiuj faris, ŝajnas), kaj ĉar mi ne komprenas ĝin Mi ne plu legas. Mi ne scias, ĉu vi povus ŝanĝi ĝin, mi esperas, ke mi ne ĝenis vin per tio.
Vi povas provi la poŝtelefonan version, tiuj aspektas iom pli klare, ĝi estas wordpress-temo: / aliflanke ĉiuj C-titoloj troviĝas en / usr / include /, ĉi-kaze vi povas elekti legi ĝin rekte se vi estas pli facile 🙂 Mi provos alŝuti pli grandan bildon por vidi ĉu ĝi helpas 🙂
Dankon, mi pensas, ke mi devas pacienci kun ĉi tio, he he he.
Dankon pro la artikolo, ĉar nun mi iom pli bone komprenis la variablojn kaj gamon de reprezentado de lingvo kaj sed nun mi pensas, ke mi komencu uzi la bibliotekon "stdint.h", ĉar ili rekomendas ĝin uzi kiam programas en c ĉar mi havis estis instruita al la malnova lernejo, ĉar memoro estis altvalora kaj oni devis zorgi pri tio, kion oni uzis
Estas neniu kialo por Katekyo, certe pli bone estas uzi la norman bibliotekon, sed mi povas certigi al vi, ke pli bone estas scii, kio distingas uint_least8_t de uint_fast8_t kaj tion oni atingas sciante la primitivajn datumtipojn, kio estis la celo de la afiŝo 🙂 Multaj dankon pro la komento kaj pro legado de la artikolo, salutojn
: Aŭ majstra klarigo! Mi konis parton de la konceptoj, sed mi ricevas multajn novajn sciojn de ĉi tiu afiŝo
Koran dankon Victor 🙂 kiel bone, ke la artikolo povas helpi, salutojn
Mi tre ŝatis Python por plifaciligi programadon, mi vidis kurson en http://zetcode.com/gui/pyqt4/ Mi amis la finan tetrison pri: http://zetcode.com/gui/pyqt4/thetetrisgame/
Ĉi tetrison mi retuŝis dum somero por meti poentojn, multiludanton kaj muzikon, iom post iom, sed tre amuze.
Saluton Guille, certe estas tre amuze vidi, ke la programaro, pri kiu vi laboras, kreskas iom post iom inc ĝi estas nekomparebla sperto, kaj des pli kiam iu trovas tion, kion vi disvolvas utila, tio estas el alia mondo 😀 dankegon por dividi 🙂
Tiun, kiun mi faris, mi alŝutis (30Mb por la muziko) al http://guillermo.molleda.com/Tetris9.7z
Vi devas agordi malsaman komencan rapidon por ĉiu ludanto aŭ se vi rekomencas poentojn post nova ludo, ..., kaj estas tri ludantoj por miaj du filinoj ludi kun mi. Ĝi eĉ dependigas.