PDA

View Full Version : تشخیص زوج یا فرد بودن یک عدد اشاری



Mahdi Fahmideh
سه شنبه 08 شهریور 1384, 09:54 صبح
برای تشخیص زوج یا فرد بودن یک عدد اشاری در سی شارپ چه راهی وجود داره؟
0.2 زوج و 0.3 فرد و ...
عملگر % فقط در مورد اعداد صحیح کار میکنه؟

someCoder
سه شنبه 08 شهریور 1384, 23:05 عصر
عمل زوج و فرد بودن مخصوص اعداد صحیحه! حالا اگر شما میخواین عملگر مخصوص خودتون رو تعریف کنید باید خودتون کدش رو بنویسید

یاشار
چهارشنبه 09 شهریور 1384, 23:06 عصر
اگر تعداد اعدادی که باید زوج یا فرد بودنشون چک بشه زیاد باشه، بهترین روش استفاده از کم‌ارزش‌ترین بیت عدده. با توجه به اینکه تمام اعداد فرد در مبنای دو به 1 ختم می‌شن، کافیه بررسی کنیم که بیت اول چیه. برای اینکار کافیه عدد رو با 1، bitwise & کنیم . ( بعد از تبدیل به عدد صحیح )

011011011 (یک عدد فرد)
000000001 AND
-------------------
000000001





if ( ( Num & 0x1 ) == 1 )
//is odd
else
//is even or zero

someCoder
پنج شنبه 10 شهریور 1384, 23:51 عصر
اگر تعداد اعدادی که باید زوج یا فرد بودنشون چک بشه زیاد باشه، بهترین روش استفاده از کم‌ارزش‌ترین بیت عدده. با توجه به اینکه تمام اعداد فرد در مبنای دو به 1 ختم می‌شن، کافیه بررسی کنیم که بیت اول چیه. برای اینکار کافیه عدد رو با 1، bitwise & کنیم . ( بعد از تبدیل به عدد صحیح )

011011011 (یک عدد فرد)
000000001 AND
-------------------
000000001





if ( ( Num & 0x1 ) == 1 )
//is odd
else
//is even or zero



اگر دقت میکردید تمام مشکل اینجا مربوط به اعداد اعشاری بود! و راه حل شما هیچ ربطی به مساله نداشت!

یاشار
جمعه 11 شهریور 1384, 10:55 صبح
عرض کردم، زوج و فرد در مورد اعداد اعشاری معنی نداره. این مطلب رو به عنوان یک روش جالب برای تعیین کردن زوج و فرد بودن اعداد و در ادامه صحبت شما مطرح کردم، نه در رد حرفتون. شاید باید تو پست قبلی بیشتر توضیح می‌دادم. به هر حال اینقدر عصبانی شدن نداره. اینجا همه جمع شدیم از هم چیز یاد بگیریم.

وقتی تعداد اعداد زیاده تفاوت بین استفاده از % و بررسی پایین‌ترین بیت کاملا محسوسه. بنابراین اگر دوستمون تصمیم گرفتن که به هر حال می‌خوان این اعداد رو به صحیح تبدیل کنند، پیشنهاد می‌کنم این روش رو هم امتحان کنن.

someCoder
جمعه 11 شهریور 1384, 22:31 عصر
عرض کردم، زوج و فرد در مورد اعداد اعشاری معنی نداره. این مطلب رو به عنوان یک روش جالب برای تعیین کردن زوج و فرد بودن اعداد و در ادامه صحبت شما مطرح کردم، نه در رد حرفتون. شاید باید تو پست قبلی بیشتر توضیح می‌دادم. به هر حال اینقدر عصبانی شدن نداره. اینجا همه جمع شدیم از هم چیز یاد بگیریم.

وقتی تعداد اعداد زیاده تفاوت بین استفاده از % و بررسی پایین‌ترین بیت کاملا محسوسه. بنابراین اگر دوستمون تصمیم گرفتن که به هر حال می‌خوان این اعداد رو به صحیح تبدیل کنند، پیشنهاد می‌کنم این روش رو هم امتحان کنن.
یاشار جان، ما خیلی مخلصیم! :لبخندساده
منظور بدی نداشتم! اصلا هم نمیخواستم لحن عصبانی داشته باشم! :بامزه:
فقط یه کم تو جواب دادن عجله کردم و پست خودم رو دوباره نخوندم!

خلاصه اش اینکه شرمنده اگر جور دیگه ای برداشت کردی :چشمک:

sqlserver
دوشنبه 20 تیر 1390, 23:21 عصر
dim b as integer

topline
جمعه 07 بهمن 1390, 21:50 عصر
سلام دوستان
ی سوال: (شاید خیلی ابتدایی باشه ولی ممنون میشم پاسخ بدین):قلب:
برای تشخیص صحیح(int) یا اعشاری (double) بودن یک داده باید از چه دستوری استفاده کنیم؟!:متفکر:

nunegandom
جمعه 07 بهمن 1390, 22:27 عصر
if (obj1 is int)
یا
if (obj1.GetType() == typeof(int))
یا
Type t = typeof(obj1);
if (t == typeof(int))

اینم منبع:
http://stackoverflow.com/questions/983030/type-checking-typeof-gettype-or-is