ورود

View Full Version : سرعت , تبدیل ,مقدار دهی, مقایسه, انواع داده ای



H_G_G_I
دوشنبه 22 آبان 1391, 14:54 عصر
سلام
اول از همه بخشید عنوان دیگه به ذهنم نرسید شما بلدین بگید !
من می خواستم بدونم چرا تو اکثر برنامه ها مثلا بجای bool از int استفاده می کنن
و true و false رو 1 و 0 در نظر می گیرن ؟؟؟
خب int که جای بیشتر می گیره مقایسه هم مطمعنا کند تر میشه دیگه !

یا اینکه چرا موقعی که یه عدد مثلا باید unsigned باشه این کارو
نمی کنن ؟
تبدیل از unsigned به signed چقدر فشار میاره مگه ؟
و چرا عوض byte , shor از int استفاده میشه ! به خاطر data aligment هست یا ؟؟؟
:لبخندساده:

درضمن مثلا من وقتی به پارمتر یه تابعی چیزی که UShort هست مقدار می دم کامپایلر قبلش ان رو از int به UShor تبدیل می کن یا باید یه چیزی تهش اضافه کنم مثل f که برا مشخص کردن float هست ؟
-
:لبخندساده:
فکر کنم باید اسمبلی بخونم تا اینا رو بفهمم نه ؟

omidshaman
دوشنبه 22 آبان 1391, 20:33 عصر
ازه خوب قطعا استفاده از bool بهتر از استفاده از int ه ولی خوب تو برنامه هایی کوچیک فرقش خیلی خیلی کمه البته باعث خوانا تر شدن کدهم میشه... بهتره بیشتر از همون bool استفاده کنین! حالا چرا از اون استفاده کردن رو دیگه باید از خودشون بپرسی!
و این که تو کتابی که من خونده بودم نوشته بود بیشتر سعی کنین بیشتر از int به جای short int یا long int استفاده کنین دلیلشو نمی دونم...( c++ programing language third edition bjarne stroustrup)
"چرا موقعی که یه عدد مثلا باید unsigned باشه این کارو
نمی کنن ؟ "من متوجه این سوال نشدم خوب وقتی که قراره عدد منفی هم باشه باید از signed استفاده کنن اگر استفاده نکنن که برنامه اشتباه در میاد! از نظر اندازه هم که یکین فرقی نداره از کدوم استفاده بشه!
اگر منظورتون از ushor باشه unsigned shortتا اون جایی که من میدونم اره خود کمپایلر اینارو تبدیل میکنه
اگر جاییشو اشتباه گفتم خوشحال میشم تصحیح کنین...

مسعود اقدسی فام
دوشنبه 22 آبان 1391, 21:33 عصر
در مورد بول تا جایی که می‌دونم وقتی حتی یه متغیر تعریف می‌کنید یه بایت بهش اختصاص داده می‌شه که یه بیت با ارزش داره. متغیر دوم که تعریف می‌شه داخل همون بایت یه بیت دیگه به اون اختصاص داده می‌شه. همینطور تا آخر.

H_G_G_I
دوشنبه 22 آبان 1391, 22:00 عصر
تو کتابی که من خونده بودم نوشته بود بیشتر سعی کنین بیشتر از int به جای short int یا long int استفاده کنین دلیلشو نمی دونم...( C++‎ programing language third edition bjarne stroustrup)
"چرا موقعی که یه عدد مثلا باید unsigned باشه این کارو
نمی کنن ؟ "من متوجه این سوال نشدم خوب وقتی که قراره عدد منفی هم باشه باید از signed استفاده کنن اگر استفاده نکنن که برنامه اشتباه در میاد! از نظر اندازه هم که یکین فرقی نداره از کدوم استفاده بشه!

منم دنبال دلیلشم ! یکیش اینه که فکر می کنم نمی خوان هی تبدیل بشه ! یعنی کلا همه چی int باشه دیگه هردفعه نوع ها تبدیل نشه !
منظورم این بود که مثلا برای دادن طول و عرض یه پنجره عدد منفی که نباید داد پس چرا عوض unsigned از همون int استفاده میشه .
یه جا یه چیزایی قبلن خودنم ولی درست متوجه نشدم ! مثل اینکه می گفت تو سیستم 32 بیتی دیتا ها 32 بیت 32 بیت تقسیم می شن و وقتی از رم می رن به سی پیو 32 بیت 32 بیت می رن!
مربوط به Data Aligment بود ! می شه یکمی در مورد Data Aligment توضیح بدین ! من دقیقا نفهمیدم چی به چیه !

omidshaman
سه شنبه 23 آبان 1391, 07:52 صبح
تو برنامه های معمولی فرقی نداره ولی خوب رایج تره که از int استفاده کنن
http://cboard.cprogramming.com/cplusplus-programming/152211-short-int-vs-int.html