Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

(int) & (System.Int32) unutar .NET-a

[es] :: .NET :: (int) & (System.Int32) unutar .NET-a

[ Pregleda: 3869 | Odgovora: 16 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.net.t-com.hr.

Sajt: www.dump.hr


Profil

icon (int) & (System.Int32) unutar .NET-a22.06.2006. u 18:24 - pre 217 meseci
(int) & (System.Int32)

Zanima me kako su ova dva pojma povezana, a kako se razlikuju.
Dali je 'int', recimo typedef, 'System.Int32-a' ili postoje neke razlike.
Imam pretpostavku da je 'int' value type, a 'System.Int32' reference type...
 
Odgovor na temu

Oliver Klaćik
Vice President, Thunder Road Software
Inc.
Stara Pazova

Član broj: 34059
Poruke: 242
80.93.231.*

Sajt: www.thunderroadsoftware.c..


Profil

icon Re: (int) & (System.Int32) unutar .NET-a22.06.2006. u 20:18 - pre 217 meseci
Ja mislim da je to u potpunosti isto. Znači value type, samo što je int spada u C# sintaksu (kao Integer u VB.NET-u), dok je Int32 naziv strukture u .NET Frameworku koja se koristi kada ti napišeš int (ili ja Integer ).

Ali mene kopka jedna druga stvar. Da li je u x64 .NET kompajleru int 32-bitna ili 64-bitna vrednost? Ako se ne varam, ranije je integer podrazumevao 16-bitne, odnosno 8-bitne vrednosti, pa se sa prelaskom na nove procesore i kompajlere povećavala vrednost integer-a.
Oliver 'FAQ' Klaćik
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.net.t-com.hr.

Sajt: www.dump.hr


Profil

icon Re: (int) & (System.Int32) unutar .NET-a23.06.2006. u 00:19 - pre 217 meseci
Sa 90% sigurnoscu mogu reci da ce 'int' uvijek pratiti kompajler jer su na taj nacin kalukulacije sa 'int-om' najbrze moguce.
 
Odgovor na temu

negyxo
Aleksandar Perkuchin

Član broj: 29751
Poruke: 898
*.sksyu.net.



+171 Profil

icon Re: (int) & (System.Int32) unutar .NET-a23.06.2006. u 10:19 - pre 217 meseci
Pogledaj Built-In Types tabelu za c#. Tamo ti pise koji tip se na sta mapira u .NET framework-u.

Citat:

Ali mene kopka jedna druga stvar. Da li je u x64 .NET kompajleru int 32-bitna ili 64-bitna vrednost? Ako se ne varam, ranije je integer podrazumevao 16-bitne, odnosno 8-bitne vrednosti, pa se sa prelaskom na nove procesore i kompajlere povećavala vrednost integer-a.


Ako se ja ne varam int je uvek 32-bitni, u ostalom i mapira se na System.Int32, valda ono 32 znaci uvek 32 . Za specificnu platformu se koristi System.IntPtr type.
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.net.t-com.hr.

Sajt: www.dump.hr


Profil

icon Re: (int) & (System.Int32) unutar .NET-a23.06.2006. u 12:10 - pre 217 meseci
.NET nije ni postojao na drugim sustavima osim 32-bitnog pa je "uvijek" int predstavljao 32-bitnu vrijednost. (perfekt je ovdje zbog dozivljaja)
Hoce li se na XX-bitnim sustavima i u novim generacijama .NET-a int mapirati u IntXX vrlo je vjerojatno.
 
Odgovor na temu

Oliver Klaćik
Vice President, Thunder Road Software
Inc.
Stara Pazova

Član broj: 34059
Poruke: 242
80.93.231.*

Sajt: www.thunderroadsoftware.c..


Profil

icon Re: (int) & (System.Int32) unutar .NET-a23.06.2006. u 13:31 - pre 217 meseci
Ima tu još jedan problem. Ako int u x64 kompajleru predstavlja Int64, šta bi onda trebalo da predstavlja long, s' obzirom da ne postoji Int128 struktura?
Oliver 'FAQ' Klaćik
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.net.t-com.hr.

Sajt: www.dump.hr


Profil

icon Re: (int) & (System.Int32) unutar .NET-a23.06.2006. u 18:26 - pre 217 meseci
Kada dodje 64-bitni .NET vjerojatno ce i postojati Int128.

Pazi, ovakav .NET 1.1 i 2.0 koji poznajemo ce uvijek ostati isti. Kasnije ce samo dolaziti nove generacije koje ce se prilagodjavati trenutnim mogucnostima sistema. Odnosno short-term int ce predstavljati najoptimalniju strukturu integera.
x32 int -> Int32
x64 int -> In64

Ako budes pisao u .NET 1.1 za 64-bitnu arhitekturu opet ce int predstavljati Int32 i trebao bi se provoditi korektno na tom x64 sustavu. Vjerojatno ce tad trebati izbaciti .NET te iste verzije 1.1 za 64-bitnu arhitekturu, ali je glavno da se MI necemo morati zamarati oko toga.
 
Odgovor na temu

srdjandakic

Član broj: 11297
Poruke: 430
..mtsns-ns.customer.sbb.co.yu.



+14 Profil

icon Re: (int) & (System.Int32) unutar .NET-a23.06.2006. u 19:00 - pre 217 meseci
U C# specifikaciji ne kaže ništa o intu kao "prirodnom" registru (virtualnih) mašina, kao što je to bio slučaj sa recimo C/C++, već su jasno odredjene veličine i opsezi tipova, i kako se oni zovu.

http://msdn.microsoft.com/libr...html/vclrfcsharpspec_4_1_5.asp

short = 16 bitni ceo broj
int = 32 bitni ceo broj
long = 64 bitni ceo broj

itd.
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.net.t-com.hr.

Sajt: www.dump.hr


Profil

icon Re: (int) & (System.Int32) unutar .NET-a24.06.2006. u 00:52 - pre 217 meseci
Isto tako ne kaze nista o tome hoce li se sta mijenjati... mozemo samo nagadjati.
Ako gledam iz drugog kuta ne bi bilo ni lose da int ostane zauvijek 32-bitni.
 
Odgovor na temu

Oliver Klaćik
Vice President, Thunder Road Software
Inc.
Stara Pazova

Član broj: 34059
Poruke: 242
80.93.231.*

Sajt: www.thunderroadsoftware.c..


Profil

icon Re: (int) & (System.Int32) unutar .NET-a24.06.2006. u 06:30 - pre 217 meseci
Kao prvo, 64-bitni .NET je već došao u verziji 2.0, ali strukture Int128 i dalje nema...

E, sad, da li bi int uvek trebao da ostane 32-bitna vrednost?

Jednog dana ćemo preći na 128-bitne sisteme, pa na 256-bitne (naravno ne u skorije vreme). Osnovna prednost novih platformi je mogućnost procesora da radi sa većim vrednostima koje ne mora da deli na više registara. Druga stvar, naravno, je adresiranje memorije. Sada će neko da kaže, da nam nikada neće trebati više od 2^64 memorije, ali nekada su mislili da je i 64 KB dovoljno. Za nas koji radimo data access aplikacije sve to i nije toliko bitno, ali za obradu zvuka/slike, 3D animaciju i ostale 'zahtevne' stvari jeste, tako da sumnjam da će int uvek ostati 32-bitna vrednost, bar u C++ kompajleru. Što se .NET-a tiče, on je i zamišljen kao data access platforma, pa postoji mogućnost da će int uvek biti Int32.

Btw, od kada sam prešao na .NET 2.0, Int32 uvek deklarišem kao Int32, ako procenim da mi nikada neće trebati veća vrednost. Tako da, šta god da odluče u Microsoft-u, moje aplikacije neće zauzimati više memorije nego što im treba ni u nekim budućim verzijama .NET-a. Naravno, sad se nameće i pitanje, što se ja u opšte cimam oko toga, kada prosečna konfiguracija već ima 1GB RAM-a? Da budem iskren, nemam pojma...
Oliver 'FAQ' Klaćik
 
Odgovor na temu

DjoleReject
Djordje Knezevic
Zvezdara

Član broj: 85258
Poruke: 309
..taman-bg.customer.sbb.co.yu.



+1 Profil

icon Re: (int) & (System.Int32) unutar .NET-a26.06.2006. u 18:50 - pre 217 meseci
Ja sam u jednoj knjizi procitao da je int i System.int32 apsolutno isto, tj. sinonim. Po nekoj mojoj logici, to znaci da nije bitno sta si napisao, kad kompajler to prevede u potpuno istu rec. A sto se tice vise bita u novijim verzijama, zar se nece Microsoft "pokriti" da se taj kod uvek isto prevede? Mislim, nije valjda sad nesto "sinonim", a u kasnijim verzijama ne???
De si Deda...
 
Odgovor na temu

misk0
.: Lugano :. _.: CH :.

SuperModerator
Član broj: 634
Poruke: 2824
*.adsl.ticino.com.

ICQ: 46802502


+49 Profil

icon Re: (int) & (System.Int32) unutar .NET-a26.06.2006. u 19:25 - pre 217 meseci
Citat:

Po nekoj mojoj logici, to znaci da nije bitno sta si napisao, kad kompajler to prevede u potpuno istu rec. A sto se tice vise bita u novijim verzijama, zar se nece Microsoft "pokriti" da se taj kod uvek isto prevede? Mislim, nije valjda sad nesto "sinonim", a u kasnijim verzijama ne???


Da, ali to je sad tako. Sutra ce MS mozda uvesti 128bitni 'int' i odluciti se da je podesnije po defaultu koristiti 128 nego 32bitni i imatjes problema. Zato ako sad koristis Int32, siguran si da ce on uvijek i uvijek ostati takav.
:: Nemoj se svadjati sa budalom, ljudi cesto nece primjetiti razliku ::
 
Odgovor na temu

DjoleReject
Djordje Knezevic
Zvezdara

Član broj: 85258
Poruke: 309
..taman-bg.customer.sbb.co.yu.



+1 Profil

icon Re: (int) & (System.Int32) unutar .NET-a26.06.2006. u 20:25 - pre 217 meseci
Ali da li mi je cilj da ostane isti? Gde ce biti problem ako int poraste? Pitam ovo sa pozicije C++ a, jer ako se koristi sizeof (koji, vidim postoji i u C#) ne bi trebalo da se pojave problemi. Ili...???
De si Deda...
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
*.lionbridge.com.



+6 Profil

icon Re: (int) & (System.Int32) unutar .NET-a26.06.2006. u 20:44 - pre 217 meseci
Ne sekiraj se. Za razliku od C++a, veličina integralnih tipova u C#u je standardizovana i neće se menjati. Jedino mogu da dodaju nove tipove ako se ukaže potreba.
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.net.t-com.hr.

Sajt: www.dump.hr


Profil

icon Re: (int) & (System.Int32) unutar .NET-a26.06.2006. u 23:49 - pre 217 meseci
Sada je stanje kod C++.NET takvo da int i long imaju .NET ekvivalent Int32 sto je ipravno jer oni predstavljaju 32-bitni integer. Kako ide to kod "obicnog", native C++ int je bio 8-bitni, 16-bitni, sad 32-bitni, a sutra vjerojatno 64-bitni, itd. Iz ovoga slijedi da ce vjerojatno s vremenom morati doci i do promjena u samom C++.NET-u kod kojeg ce se kasnije nativni int prevoditi u .NET-ov Int64.
Ja pitam, hoce li onda i C#-ov int pratiti takvu situaciju?
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
*.hsd1.ma.comcast.net.



+6 Profil

icon Re: (int) & (System.Int32) unutar .NET-a27.06.2006. u 00:03 - pre 217 meseci
Kod C++a int na raznim platformama ima raznu veličinu, kako juče, tako danas, a bogami i ubuduće :) C++ standard eksplicitno dozvoljava raznim implementacijama da definišu različitu dužinu int-a.

Kod C#a, kao i Jave, int na svim platformama ima veličinu 32 bita, opet kako juče, tako danas, a bogami i ubuduće. C# standard eksplicitno nalaže svim implementacijama da imaju dužinu int-a 32 bita.

Nadam se da su sad stvari malo jasnije.

 
Odgovor na temu

Oliver Klaćik
Vice President, Thunder Road Software
Inc.
Stara Pazova

Član broj: 34059
Poruke: 242
80.93.231.*

Sajt: www.thunderroadsoftware.c..


Profil

icon Re: (int) & (System.Int32) unutar .NET-a27.06.2006. u 00:11 - pre 217 meseci
Evo jednog primera gde bi to mogao da bude problem...

Deklarišeš promenljivu kao int i pošalješ je u bazu podataka, u kolonu koja očekuje 32-bitnu vrednost.

U međuvremenu, izađe novi .NET kompajler koji int prevodi u Int64 strukturu, a tvoj klijent hoće da mu aplikaciju radi na novoj verziji .NET-a i eto problema...

Realno, ne mislim da će Microsoft u sledećoj verziji .NET prilagoditi x64 arhitekturi, ali kada imaš monopol možeš da radiš šta hoćeš. A meni se čini da oni u opšte nemaju jasnu razvojnu strategiju za .NET i zato sada uvek koristim Int32, a ne int ili Integer.
Oliver 'FAQ' Klaćik
 
Odgovor na temu

[es] :: .NET :: (int) & (System.Int32) unutar .NET-a

[ Pregleda: 3869 | Odgovora: 16 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.