T-shirt apdruka,un mazo uzlīmju taisīšana. 4
Profesionālie tulkošanas pakalpojumi. 5
Pardod: MSI GeForce RTX 2080ti gaming X TRIO Graphic Card 1
Vēlos piedāvāt darbu online. 0
OCTA termiņš 13
Ka sauc Pasaules dalu kura dzivojam 4
google 1
Taustiņu funkcijas izmainīšana 2
Torrent 1
ESET izlaiž 2017.gada produktu izdevumus 23
VIAPLAY: Video tiešsaistē skatās 70% Latvijas iedzīvotāju 21
Katrā desmitajā datorā joprojām izmanto Windows XP 2
Google tuvākajā laikā atteiksies no Chrome paplašinājuma palaidēja 2
Acer ievieš nozares pirmo ieliekto monitoru ar acu izsekošanas funkcionalitāti 4
Adobe laiž klajā ārkārtas atjauninājumu 3
Tests: Cik precīzs ir "lēta gala" velo spidometrs? 3
Leģendārie telefoni – Nokia 3310 un citi 3
Puisis iziet Super Mario spēli mazāk kā piecu minūšu laikā un labo pasaules rekordu 2
Līdz 29.jūlijam atjaunini savu Windows bez maksas! 3
Kā uzlabot televizora skaņu? 2
Programma, ar kuras palīdzību fotogrāfijas pārveidot .gif formātā 1
Aproce, kas sastāv no 25 instrumentiem 1
Trīs padomi televizora izvēlei 2
Windows 7 ēra tuvojas noslēgumam, Microsoft koncentrējas uz Windows 10 1
Lietotāji online: 120
Reģistrētie lietotāji online: 0
Viesi online: 120
Sveiki.
Taatad nesaprotu kaa dators atshkjir ciparus no burtiem binaarajaa...
Jo 65 binaarajaa ir 1000001
Bet A burts ir 65 t.i. 1000001
Nu tad es tagad nespeeju saprast kaa dators atshkjir..
nu nebuus kas tiirs te..
Piemeeram man ir cietais, tajaa ir iegraveeti dati (binaarajaa) kaa var buut burtu un cipari atdaliiti taa ka burti uz vienas plates, bet cipari cittur..
kaa tad sanaaks teksts.. lol
"man ir 2 matenee, bet 3 latenee"
man ir matenee, bet latenee buutu vinaa vietaa un 2 un 3 citaa? kaut kas nav tiirs kaa tad vins zin kaa salikt visu kopaa???
man ir 2 matenee, bet 3 latenee
Informātikā arī daudz vairāk neizspiedīsi.
Johans2 rakstīja:
"man ir 2 matenee, bet 3 latenee"
Pamatoti - 65 nav cipars, bet cipari 6 un 5 ASCII kodējas savādāk.
nuu .. ja tu tiešām saņem tādus vērtējumus abos šitais priekšmetos, tad es ieteiktu apdomāt pāriešanu uz kādu palīgskolu vai skolu bērniem ar īpašām vajadzībām, tādēļ ka veselam cilvēkam vismaz viena smadzeņu puslode strādā (labā - iztēle, kreisā - loģika .. ja nejaucu) , un vesels cilvēks nevar izgāzties abos šais priekšmetos.
#6 pirmaart man nav skolaa taada latvieshu valodas priekshmeta un matemaatikaa man 2 nav :P
Skolaa man maaca datortehniku, programmeeshanu un opereetaajsisteemas (visur maaca binaaro) :P
KaNeiet, nu labi skaitlis.. bet nu tas taa.. Bet kaa tad kodeejas ASCII?
Apskatot ASCII tabulu mees tachu visu redzam..
http://www.asciitable.com/asciifull.gif
kaa tad tur ir?
1 baits nenozīmē neko, kamēr to nesāk izmantot. un tad, kad sāk - tad ir jābūt definētam, kā jamo uztvert.
ja programma sāk izmantot no sazinkurienes nolasītus datus, tai ir jāsaprot, kādā formātā tie ir. to nodefinē programmētājs, rakstot programmu - vai datus uztvert kā unsingned short int vai char virkni vai gabalu no signed long int.
kad apgūsi programmēšanas pamatus, jautājumi atkritīs paši no sevis.
Bljaaviens, es jau no 2003 gada programeeju un zinu daudz vairaak kaa pamatus.. :D
Taatad pirmais baits ir datu tips? hmm.. nu skaidrs laikam..
100001000(tips)100010001(H)100001000(tips)1001001004
kaut kaa taa, ja?
Johans2 rakstīja:
Bljaaviens, es jau no 2003 gada programeeju un zinu daudz vairaak kaa pamatus.. :D
QueenZ, nezini kāpēc man sanāca rēka šito izlasot ?
es griežu auto baranku jau no padomju laikiem un visu zinu - tā ka nepūt man te pīlītes, ka ir iespējams iebraukt atmuguriski garāžā!
ja programmē jau ilgi - nu tad uzraksti programmiņu, kurā ir definēta struktūra Figure ( int height, int width, String/char[] description );
tad uztaisi vienu instanci un pieglabā struktūras instanci *.txt failā.
atver failu ar hex editoru, paskaties.
liec programmai ielasīt struktūru no faila.
izdari secinājumus - kā gan viņš zināja, kurš ir width, kurš ir height un kā viņš atšķīra viņus abus un kā viņš zināja, kur apstāties, ielasot struktūru?
da labi.. a kaa vispaar programma zin kur saakas viens burts un kur saakas/beidzas cits??
tā, kā programmētājs uzrakstījis.
lai labāk saprastu, iemācies kādu asembleru vai izlasi programmētāju bībeli (The Art of Computer Programming).
par atmiņas rezervēšanu rūpējas kompilators.
programmētājs vnk nodefinē, ka viņam būs 2 integer tipa mainīgie un 1 char[200]. kompilators paredz, ka vajag rezervēt vietu atmiņā šiem 3 mainīgajiem un, kad pie tiem vēršas, vnk atgriež atmiņas apgabalu, kur tie glabājas. GET/SET tipa funkcijas vēršas pie šī atmiņas apgabala. un atļauj rakstīt atmiņā tikai noteikta garuma informāciju.
koderis nav dievs, viņš var tikai definēt mainīgos, rakstīt algoritmu un, augstākais, grābstīties gar atmiņu ar Win32API WriteProcessMemory() tipa funkcijām, rakstot tur heksā vajadzīgo informāciju. nu vēl var nejauši - ar strcpy(), kas ir daudzu sploitu pamatā.
to, cik bitus atmiņā aizņem viens mainīgais, nosaka tā datu tips. sīkāk par datu tipiem (int, long, double .. ) var palasīties http://www.cplusplus.com/doc/tutorial/variables.html
Vispār jau šajā gadījumā atbilde ir visai īsa:
http://lv.wikipedia.org/wiki/Fon_Neimana_arhitektūra
Binārās kodēšanas princips
Visa informācija – kā dati, tā arī programmas – tiek kodētas ar bināriem cipariem 0 un 1. Katram informācijas tipam ir sava bitu konsekvence jeb formāts.
Atmiņas vienveidības princips
Komandas un dati glabājas vienotā atmiņā un ārēji nav atšķirami. Tas ļauj ar instrukcijām veikt tās pašas darbībās kā ar datiem.
nu bet nopietni, uz tavu jautājumu navar atbildēt tev zināmās kategorijās. Pamēģini kurlajam izskaidrot kas ir saksofons. Lasi grāmatas. Mācies valodas.
Kāpēc datoru pamatos nesāk ar mašīnkodiem, tiem, kam pielec, pielec uz visu mūžu, bet kam nepielec, tie var iet uz mākslas akadēmiju :)
A kā tu zini, kur sākas burts, kad to uzraksti uz lapas? A kā tu zini, vai uz lapas ir uzrakstīts 0 vai O. Kā tu zini, vai zāle ir tā, kas tev aug zem loga, vai kurā tu spēlē basīti. Dažreiz arī pīpē ;)
Viss tiek interpretēts un saprasts kontekstā. Nevar paņemt bitu virkni un saprast, vai tas ir burts vai cipars vai varbūt fragments no video. Ir jāzina, kas tas ir. Pag, kurā klasē tu ej, pirmajā vai otrajā ;)
m
PS. usver: nebiedē bērnus ar tādiem svešvārdiem ;) Ja šī nebūt bērnu tēma, mēs par šo varētu padiskutēt, bet tā kā Jaņčuks no tā tik un tā neko nesapratīs, lai jau paliek.
un vispār, Johans2 - neskaiti bitus, skati baitus.
ja tev ir 65 kā teksts, tad tas būs baitos pierakstīts kā 2 baiti - [36h][35h] - atvērsi TXT failu un būs izlasāms "65".
ja 65 ir kā int ( 4 bytes ), tad tur būs 4 baiti - [0][0][0][65h] - atvērsi TXT failu ar Notepad, un tur būs redzams "e" burtiņš blakus 3 baitiem sviesta. ja ielasīsi to programmā char[] tipa mainīgajā - būs e burtiņš un sviests. ielasīsi integer tipa mainīgajā - būs skaitlis 65. i viss. kā ielasīsi, tā būs.
ob1: redz, cilvēks jau drūmi kodējot. būtu noderīgāk apgūt kādas zema līmeņa valodas pamatus - c/c++, asm, varbūt palīdzētu. augsta līmeņa valodas, izrādās, var apgūt, nezinot, kas tur ir apakšā.
#20 +10
#21 - es ja rakstīju par asm un bībeli. Bez tā nevar nopietni rakstīt.
ob1, domaaju, ka usver jau pietiekami man daudz pastaastija un apskaidroja.
KaNeiet, peec usver teiktaa tev nav taisniiba par sho - "dati glabājas vienotā atmiņā un ārēji nav atšķirami"
Peec usver teiktaa, ka katram tipam tiek atveeleeta noteikta vieta atminjaa ir gan atshjirams paskatoties uz atminu, ja zini kas tur glabaajas ;P
------------------------------
es tik nesapratu to kaa tiek aizpildiita atlikushaa vieta atminjaa..
Nu piemeeram ja man ir 255 vietas atminjaa atveeleetas vaardam "ola" - binaarajaa - "1000010001000110001010001001001000100.............255" kaa tad aizpildiisiese vieta liidz 255 simboliem? ar nulleem? diezvai jo tad visu var panjemt kaa vienu...
Johans2:
1) izlasi visu teikto. ja tu ielasi un interpretē datus, tad interpretācijas rezultāts ir atkarīgs no tā, kāda tipa mainīgajā tu to ielasi (65 vai "e"). bet reāli viss tavs cietais disks ir piebāzts ar vieniniekiem un nullēm. tikai konkrēta programma spēj saprast, kā to visu uztvert. viss tiešām ir atkarīgs no konteksta.
2) ola tev būs pirmie 3 baiti no 255, pēc tam - ~250 baiti pa 00h (jeb 8x vairāk nuļļu).
strings beidzas ar 00h baitu, tā ir zīme, ka tālāk nevajag lasīt. sāc vienreiz programmēt, tad izpaliks ābeces jautājumi.
Sapratu daudzmaz tik nesaprotu kaa apziimeejaas integeri stringi utt..
nu jaa saakumaa ir [datu_tips][mainiigais][datu_tips][mainiigais] utt..
t.i. [string][martins][integer][2008]
bet kaa tad tas izskataas binaarajaa? ar cik bitiem apziimee datu tipu? ar noteiktu lielumu?
redz, cilvēks jau drūmi kodējot
Šitais bij baigi labs :D
#24 par 2) negribas kaut kā viennozīmīgi piekrist, aiz "olas" vajadzētu sekot beigu pazīmei un parējam vajadzētu palikt, kā bija pirms rezervēšanas.
#25 neko Tu neesi sapratis
nu jaa saakumaa ir [datu_tips][mainiigais][datu_tips][mainiigais] utt..
t.i. [string][martins][integer][2008]
ob1 rakstīja:
nē. tā nav
to, kurā atmiņas vietā sāksies kurš mainīgais, zina tikai OS, izpildot konkrēto programmu un rezervējot vietu tajā deklarētajiem mainīgajiem. no malas viss bitos izskatās kā 1nieki un nulles - pat tu. Matrix has you ;>
(piedod, bet tik garu nopietnu sarunu negribas uzturēt, zinot, ka pamatus tu tomēr neesi apguvis un jautā lietas, ko vajadzētu tomēr izlasīt, nevis prasīt).
BernuBieds: atmiņai vajadzētu būt visai NULL no deklarēšanas brīža līdz aizpildīšanai ar variabli. augsta līmeņa valodās tas notiek automātiski (java bļauj "variable aaaa might not have been initialized"), c/c++ reizēm ir pārsteigumi, ja atmiņa netiek attīrīta pirms lietošanas.
Nu tad pienjemsim ka taa ir mana OS un kaa es tagad zinaashu kur kas ir?
Ja nu vēlies iedziļināties, palasi, piemēram
http://en.wikipedia.org/wiki/Computer_architecture
(arī saites)
Johans2 rakstīja:
Nu tad pienjemsim ka taa ir mana OS un kaa es tagad zinaashu kur kas ir?
lai uzzinātu par programmu - ņem rokās debugeri un skaties, kurā programmas palaišanas reizē kurā vietā atmiņā ierakstās mainīgie. olly debugger ir labs.
ir. nu tad jau sanaak, ka esmu visu sapratis, ne? :)
usver veestule tev
Johans2: vēstuli izlasīju, negatavojos ziedot stundas sava laika, lai kādam jaunietim ar stāžu, kas līdzvērtīgs manam, skaidrotu ābeces patiesības. ar tādu labdarību nenodarbojos.
#27: Tu nedaudz šauj pār strīpu ;) Atmiņa netiek automātiski iztīrīta un tajā glabājas tas, kas tur glabājas. Augsta līmeņa valodām (JAVA, C#) undefined ir mainīgā flags, kurš tiek uzlikts by default un nometās, kad mainīgajam piešķir vērtību.
Ja par C++, precīzāk Visual C++ (iespējams, ka citiem kompilatoriem var atšķirties) atmiņa tiek iedota tāda, kā tā ir, vienīgi Debug režīmā var ieslēgt default fill (neatceros precīzi simbola kodu, kaut kāds 0xE7 vai kā (nav svarīgi)). Ja gribi smuku, tīru atmiņu, jālieto ZeroMemory (Win32) vai memset (CRT). Ja definē objektu, konstruktorā var veikt sākotnējo aizpildījumu.
Vispār par JAVA, C# neesmu pārliecināts, tikai zinu to, ka mainīgie tiek interpretēti VM līmenī. Katram viņam ir piekabināts klāt tips, līdzīgi kā Johans2 bija iedomājies. C tas varētu izskatīties tā:
struct {
char m_cType;
void* m_lpData;
}
Ja tips ir ar mainīgu garumu, tad m_lpData kaut kur tiek norādīts garums.
Man pašam bija viens tāds projektiņš, kur pārsūtīja dažādas struktūras datus binārā veidā. Izmantojām ko līdzīgu šim.
Nu jā, ir jau ne tikai NULL terminate string, Pascal string mainīgajam pirmais baits norāda garumu. Neatceros, kā ar long string (t.i., >255). M$ Serialize biju to izkodis, kaut kas līdzīgs, kā UTF8
m
PS. Johans2, kā tev iet ar pirmajiem soļiem programmēšanā? Tev ieteica labu literatūru vakaram ;)
nejaucat nabaga cilvēkam galvu ar VM, javu un .net vinam pārsteigumu šim vakaram jau pietiek..
Sākumā ir grūti pierast, ka atmiņā viss glabājas lielā putrā un nav nekādas iespējas atšķirt, kur kas sākas un beidzas..
Strodam savulaik bija teiciens: "Nesūti programmu datos", ar to domājot to ka itin viegli un neapzināti var uztaisīt jmp instrukciju, kas sāks izpildīt datus.. :D
Tikai tava programma zin, kas kurā vietā glabājas. Tu veido programmu un definējot mainīgos un darbības ar tiem nosaki, kādā veidā tiks interpretēti dati..
piemēram valodā c var uzrakstīt ~tā:
short int *mas = {65,66,67,0};
printf((char *)mas); // izvadīs ABC
printf(mas); izvadīs 65
atmiņā tas glabāsies kā 41h 42h 43h 00h
Kādā valodā tad tu esi programmējis kopš 2003 gada?
Lepni teikts - "visas paarzinu", kad "pārzināsi" valodas 10-20, tad sāksi saprast kautko par programmēšanu.
Pamēģini zemāku līmeni - asm, C, tad sapratīsi kas par cik.
Un neaizmirsti par programistu bībeli.
#3 spēcīgi pateici.. :D
Par tēmu varu vienīgi iemest piemēru - vienu un to pašu informāciju binārajā kodā taču tev dažādas OS nesaprot, vai ne?
Tāpēc, ka vienas rīcībā nav instrukcijas, kā cita ir saglabājusi savus datus. OS pati zina, kur ir saglabājusi tieši kurus datus.
Manuprāt, visjēdzīgākais paskaidrojums bija #13 - pamēģini kaut kādus savus datus izvadīt saglabāšanai .txt failā, un padomā, kā tava programma pēc tam māk viņus no turienes nolasīt. ;)
spēcīga sarakste. tas no tēmas "kā var nesaprast pašsaprotamas lietas?"
vienam otram te ir visai labas pedagoga dotības :)
dators arī nemāk atšķirt. Atšķir programma, kas zina, kurā vietā atmiņā ierakstītais ir teksts, kur - skaitļi.