PDA

View Full Version : تفسیر این الگوریتم چی می تونه باشه



mahtab.kamali
چهارشنبه 09 مرداد 1392, 09:36 صبح
سلام برهمه

می خواستم ببینم نظرشما در مورد تفسیر این الگوریتم چیه ؟؟؟؟؟


for (int i = 0; i < 0x7b; i++)
{
num += 2;
num--;
}
num += 0x7b;
num = num >> 2;

tooraj_azizi_1035
چهارشنبه 09 مرداد 1392, 11:39 صبح
num پس از حلقه مقدار 0x7b رو می گیره چون 2 تا زیاد و یکی کم میشه که معادل ++ میشه.
بعد با 0x7b دوباره جمع میشه یعنی دوبرابر 0x7b.
بعد تقسیم بر 2 به توان 2 میشه یعنی 0x7b تقسیم بر 4.
شیفت به راست معادل تقسیم 2 به توان مقدار سمت راست هست.
2 برابر 0x7b تقسیم بر 4 میشه: 3D یا 61.

mahtab.kamali
چهارشنبه 09 مرداد 1392, 12:23 عصر
num پس از حلقه مقدار 0x7b رو می گیره چون 2 تا زیاد و یکی کم میشه که معادل ++ میشه.
بعد با 0x7b دوباره جمع میشه یعنی دوبرابر 0x7b.
بعد تقسیم بر 2 به توان 2 میشه یعنی 0x7b تقسیم بر 4.
شیفت به راست معادل تقسیم 2 به توان مقدار سمت راست هست.
2 برابر 0x7b تقسیم بر 4 میشه: 3D یا 61.
ممنونم از پاسخ خوب و روشنتون یه سوال دیگه داشتم 0x7b چه معنی می تونه داشته باشه

tooraj_azizi_1035
چهارشنبه 09 مرداد 1392, 12:24 عصر
یک عدد در مبنای Hex یا 16 است و معادل 123 دهدهی است.

mahtab.kamali
چهارشنبه 09 مرداد 1392, 12:32 عصر
یک عدد در مبنای Hex یا 16 است و معادل 123 دهدهی است.
آقای عزیزی می شه این سوال رو هم جواب بدین که چرا توی آرایه 0x7b رو بکار برده

danialafshari
چهارشنبه 09 مرداد 1392, 12:44 عصر
آقای عزیزی می شه این سوال رو هم جواب بدین که چرا توی آرایه 0x7b رو بکار برده
با اجازه آقای عزیزی
این قسمت شرط حلقه است و تا زمانی که i کوچکتر از 0x7b باشه وارد حلقه میشه
مثال زیر رو در نظر بگیرید
for (int i = 0; i < 10; i++)
{
MessageBox.Show(i.ToString());
}
که اعداد 0 تا 9 رو چاپ می کنه که دقیقا 10 جای 0x7b هست
در num += 0x7b; بعد از حلقه مقدار 0x7b با Num جمع میشه و در خود Num ریخته میشه
بهتره حلقه ها رو مطالعه کنید
موفق باشی

mahtab.kamali
چهارشنبه 09 مرداد 1392, 12:52 عصر
با اجازه آقای عزیزی
این قسمت شرط حلقه است و تا زمانی که i کوچکتر از 0x7b باشه وارد حلقه میشه
مثال زیر رو در نظر بگیرید
for (int i = 0; i < 10; i++)
{
MessageBox.Show(i.ToString());
}
که اعداد 0 تا 9 رو چاپ می کنه که دقیقا 10 جای 0x7b هست
بهتره حلقه ها رو مطالعه کنید
موفق باشی
تشکر می کنم آقای افشاری پس با این حساب می شه گفت عبارت0x7b کد یا رمزی است که به جای یک عدد درون حلقه کار گذاشته شده به عبارتی شبه کاری است که در جدول حروف ابجد بکار می ره درسته ؟

danialafshari
چهارشنبه 09 مرداد 1392, 12:54 عصر
تشکر می کنم آقای افشاری پس با این حساب می شه گفت عبارت0x7b کد یا رمزی است که به جای یک عدد درون حلقه کار گذاشته شده به عبارتی شبه کاری است که در جدول حروف ابجد بکار می ره درسته ؟

دوست عزیز همانطور که آقای عزیزی گفت :
یک عدد در مبنای Hex یا 16 است و معادل 123 دهدهی است.

mahtab.kamali
چهارشنبه 09 مرداد 1392, 12:57 عصر
دوست عزیز همانطور که آقای عزیزی گفت :
می بخشین منظور من این بود که چرا خود عدد روننوشته و این عبارت رو بکار برده

danialafshari
چهارشنبه 09 مرداد 1392, 13:06 عصر
می بخشین منظور من این بود که چرا خود عدد روننوشته و این عبارت رو بکار برده

والا چی بگم
ببینید
این کد
var num = 0;
for (int i = 0; i < 0x7b; i++)
{
num += 2;
num--;
}
num += 0x7b;
MessageBox.Show(num.ToString());
با
var num = 0;
for (int i = 0; i < 123; i++)
{
num += 2;
num--;
}
num += 123;
MessageBox.Show(num.ToString());
جواب هر دو 246 هست

اینم برای مشخص کردن عدد:
var num = 0x7b;
MessageBox.Show(num.ToString());

اینم برای اطلاعات عمومی
http://numbermonk.com/hexadecimal/123/
خودتون قضاوت کنید
موفق باشی

sohil_ww
چهارشنبه 09 مرداد 1392, 13:12 عصر
می بخشین منظور من این بود که چرا خود عدد روننوشته و این عبارت رو بکار برده

تو پیام خصوصی بهتون گفتم بعضی اوقات که برنامه رو با رفلکتور دی کامپایل می کنیم اگه تو اون فایل اجرای مبهم ساز استفاده شده باشه اعداد به مبنای 16 می برن
البته اگه دی کامپایل شده باشه

mahtab.kamali
چهارشنبه 09 مرداد 1392, 13:20 عصر
والا چی بگم
ببینید
این کد
var num = 0;
for (int i = 0; i < 0x7b; i++)
{
num += 2;
num--;
}
num += 0x7b;
MessageBox.Show(num.ToString());
با
var num = 0;
for (int i = 0; i < 123; i++)
{
num += 2;
num--;
}
num += 123;
MessageBox.Show(num.ToString());
جواب هر دو 246 هست

اینم برای مشخص کردن عدد:
var num = 0x7b;
MessageBox.Show(num.ToString());

اینم برای اطلاعات عمومی
http://numbermonk.com/hexadecimal/123/
خودتون قضاوت کنید
موفق باشی
آقای افشاری واقعا دستتون درد نکنه این همون چیزیه که من دنبالش بودم
درسته استفاده از معدال عدد به جای خود عدد

mahtab.kamali
چهارشنبه 09 مرداد 1392, 13:22 عصر
تو پیام خصوصی بهتون گفتم بعضی اوقات که برنامه رو با رفلکتور دی کامپایل می کنیم اگه تو اون فایل اجرای مبهم ساز استفاده شده باشه اعداد به مبنای 16 می برن
البته اگه دی کامپایل شده باشهاین هم نکته جالب بود ممنونم ازتون