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 1
: 2^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
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:
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 🙂
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ā
Labi uzrakstīts, kodolīgs un skaidrs, tajā pašā laikā interesants visām auditorijām. Jauks darbs.
Liels paldies, sveicieni 🙂
Lielisks izskaidrojums. Tu esi mašīna.
Paldies
Ļoti labi izskaidrots paldies
Paldies, ka izlasījāt to pilnībā 🙂
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
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 🙂
Jūs esat lielisks skolotājs un ļoti dāsns, lai mācītu to, ko zināt. Apsveicu un paldies.
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
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
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.
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.
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 🙂
Ļoti labi paskaidrojumi gan šajā rakstā, gan iepriekšējā. Es ceru, ka jūs turpināsiet šo tēmu, kas man šķiet ļoti interesanta.
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
Vai jūs varētu izveidot ziņu par Turinga mašīnu?
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 🙂
Wow, liels paldies, cik labs paskaidrojums.
Sveicieni
Liels paldies Allan sveicieniem
Es izlasīju tavu iepriekšējo ierakstu! Liels paldies par paskaidrojumu, lai gan es domāju, ka es nekad nepabeigšu saprast vārdu.
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
Šajā 2018. gadā es iemācos programmēt jā vai jā, paldies
Man prieks 🙂 centies !! Priekā
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.
Paldies Guillermo 🙂 Nu, es ceru, ka jūs atradīsit interesantas lietas arī nākamajos ierakstos 🙂 Sveicieni
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 ..
Ļ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
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.
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ādara2^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 🙂
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.
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.
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 🙂
Paldies, es domāju, ka man ir jābūt pacietīgam pret to, hehe
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
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
: Vai arī meistarīgs paskaidrojums! Es zināju daļu no jēdzieniem, bet no šī amata es gūstu daudz jaunu zināšanu
Liels paldies Viktoram 🙂 cik labi, ka raksts var palīdzēt, sveicieni
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.
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 🙂
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.