PDA

View Full Version : سوال: برنامه های تولید شده در سی شارپ 64 بیتی اند یا 32 بیتی؟



armsoftpc
شنبه 25 شهریور 1391, 11:55 صبح
با سلام
برنامه های تولید شده در سی شارپ 64 بیتی اند یا 32 بیتی؟


اگر 32 بیتی هستند، چطور می توانیم نرم افزار های 64 بیتی تولید کنیم؟ در ضمن آیا برای این کار نیاز است که در کدهایمان تغییر ایجاد کنیم.
آیا برنامه هایی که پلتفرمشان 64 بیتی است، سریع تر کار می کنند.
یه سوال دیگه هم اینجا داشتم اونم این که Int32 و Int با هم چه فرقی می کنند، همچنین Int64 , long با هم چه فرقی می کنند.:متفکر:

ehsan7007
شنبه 25 شهریور 1391, 12:26 عصر
جواب سوال 1 :
فکر می کنم هر دوتا !
(درست نمی دونم ها)
جواب سوال دو :
اگه بتونه بهتر از سخت افزار کار بکشه ؛ احتمالن آره!
جواب سوال 3 :
int 32 از int بزرگتره. ( مثلا یه عدد ده یازده رقمی باید Int64 باشه).

موفق باشی.

armsoftpc
شنبه 25 شهریور 1391, 12:44 عصر
ممنون از نظرتون، لطفا دیگر دوستان نیز کمک کنند.

int 32 از int بزرگتره.
مچ تون گرفتم، کد زیر را اجرا کنید:
MessageBox.Show(int.MaxValue + "\n" + Int32.MaxValue);
دقیقا دو مقدار آن برابر است، همین موضوع در مورد لانگ و اینت 64 نیز درست است، اما چرا مایکروسافت دو نوع متغیر به یه شکل تعریف کرده است.
لطفا دوستان از نقل قول استفاده کنند.

ehsan7007
شنبه 25 شهریور 1391, 14:08 عصر
منظورم برای درج اطلاعات بود ها!

Direlap
شنبه 25 شهریور 1391, 15:13 عصر
ممنون از نظرتون، لطفا دیگر دوستان نیز کمک کنند.

مچ تون گرفتم، کد زیر را اجرا کنید:
MessageBox.Show(int.MaxValue + "\n" + Int32.MaxValue);
دقیقا دو مقدار آن برابر است، همین موضوع در مورد لانگ و اینت 64 نیز درست است، اما چرا مایکروسافت دو نوع متغیر به یه شکل تعریف کرده است.
لطفا دوستان از نقل قول استفاده کنند.

سیستم شما 64 بیتی هستش یا 32 ؟

فکر کنم این دو متغیر تفاوتاشون تو سیستم های 64 بیتی مشخص میشه .

Direlap
شنبه 25 شهریور 1391, 15:24 عصر
بله امتحان کردم دیدم تفاوت دارن تو سیستم من .

سیستم من 64 بیتی هستش و اینت 64 برگ تر از اینت 32

armsoftpc
شنبه 25 شهریور 1391, 16:17 عصر
اینت 64 برگ تر از اینت 32
خسته نباشید، این رو که میدونستیم، معلومه int64 برابر لانگ است که برابر دو به توان 63 منهای یک است.
در صورتی که اینت 32 برابر دو به توان 31 منهای یک است، ربطی هم به 32 بیتی یا 64 بیتی سیستم عامل هم نداره، شما حرف من رو کامل نخودید.

مچ تون گرفتم، کد زیر را اجرا کنید:
1
MessageBox.Show(int.MaxValue + "\n" + Int32.MaxValue);


گفتم اینت 32 مقدارش با اینت برابر است نه هیچ چیز دیگر در ضمن سوالات من چیزهای دیگری است، لطفا دوستان الکی پست نزنند.

Farshid007
شنبه 25 شهریور 1391, 16:24 عصر
خوب حالا
من یه برنامه ساختم که سیستم 64 بیتی(x64) هستش
رو 32 بیتی (x86) اجرا میشه یا نه؟

Direlap
شنبه 25 شهریور 1391, 16:39 عصر
درسته من با عجله تاپیکو خوندم متوجه منظور شما نشده بودم .

به طور عادی و پیشفرض برنامه های نوشته شده برای any cpu هستن روی هر سیستم و پردازنده ای کار می کنن . خوب این از این .

مورد بعدی هم اینه که int32 و int64 متغیرهای اصلی سی شارپ هستن و int فقط یه نوع alias هست برای int32 و برای کسانی هست که با برنامه نویسی سی و سی پلاس پلاس کار کردن و راحت هستن.

kkkaka
شنبه 25 شهریور 1391, 17:29 عصر
سیستم من 64 بیته
مقدار int و int32 هر دو یکی بود(21474837647).
و همینطور Longو Int64 هردو با هم برابرند!!!

فرشید جان فکر نمیکنم!
چیزی که بنده شنیدم 32 روی 64 اجرا میشه ولی 64 روی 32 اجرا نمیشه.

armsoftpc
شنبه 25 شهریور 1391, 17:43 عصر
من یه برنامه ساختم که سیستم 64 بیتی(x64) هستش
رو 32 بیتی (x86) اجرا میشه یا نه؟
نه، دوستان شما چرا مبحث CPU را با مقادیر متغیر های قاطی کردید، اصلا این دوتا هیچ ربطی به هم نداره، متغیر مربوط میشه به حافظه (Ram) نه چیز دیگری.

مقدار int و int32 هر دو یکی بود(21474837647).
و همینطور Longو Int64 هردو با هم برابرند!!!

باید هم برابر باشه، سیستم عامل 32 یا 64 بیتی هم نداره!:چشمک:

مورد بعدی هم اینه که int32 و int64 متغیرهای اصلی سی شارپ هستن و int فقط یه نوع alias هست برای int32 و برای کسانی هست که با برنامه نویسی سی و سی پلاس پلاس کار کردن و راحت هستن.
منبع معتبری برای حرفتون دارید...

armsoftpc
شنبه 25 شهریور 1391, 17:44 عصر
با سلامی مجدد
لطفا دوستان دیگر که در این زمینه مهارت و اطلاعات دارند، نیز کمک کنند.

Direlap
شنبه 25 شهریور 1391, 18:03 عصر
منبع معتبری برای حرفتون دارید...

MSDN

http://social.msdn.microsoft.com/Forums/en-US/csharplanguage/thread/f857eeb9-ac4a-4801-9483-0a0e71db1a30

کامنت اول .

armsoftpc
یک شنبه 26 شهریور 1391, 18:43 عصر
سلام
دوست عزیز این که منبع نیست، بلکه یه سوال جواب دو کاربره و ممکن غلط باشه، ممکن درست باشه!
دوستان دیگر هم لطفا به سوالات توجه کنند و اگر بلند پست بزنند.
پیروز باشید.

armsoftpc
پنج شنبه 06 مهر 1391, 16:21 عصر
کسی نبود...

Mahmoud.Afrad
پنج شنبه 06 مهر 1391, 18:02 عصر
32 یا 64 بیتی بودن برنامه رو از پنجره properties تب build گزینه platform target میتونید تعیین کنید.



برای متغیرها هم بگم int همون Int32 هست و هر دو از نوع ساختمان داده System.Int32 هستند. برای اثبات هم کافیه کلمه int را تایپ کنید و کمی صبر کنید تا tooltipراهنمای ویژوال استادیو باز بشه و همچنین برای Int32 هم همینطور.

long , Int64 هم به همین روش.