PDA

View Full Version : سوال: تبدیل رشته به عدد و برعکس



meysamg_alone
سه شنبه 29 اردیبهشت 1388, 13:43 عصر
سلام به همه
من می خواستم بدونم که چه جوری میشه که یه عدد از نوع int یا حالا long رو به رشته STRING یا CHAR یا انواع دیگه تبدیل کرد .
:لبخندساده:

mehdi.mousavi
سه شنبه 29 اردیبهشت 1388, 14:01 عصر
سلام به همه
من می خواستم بدونم که چه جوری میشه که یه عدد از نوع int یا حالا long رو به رشته STRING یا CHAR یا انواع دیگه تبدیل کرد .
:لبخندساده:

سلام.
می تونید از _itot استفاده کنید. stdlib فراموش نشه.
برای اطلاعات بیشتر به MSDN مراجعه کنید. (http://msdn.microsoft.com/en-us/library/0we9x30h.aspx)

پاورقی: من همواره نسخه T توابع رو استفاده می کنم، اما برخی از برنامه نویسها از نسخه های Unicode یا ASCII مستقیما استفاده می کنن. در صورتیکه تمایل دارید تا از نسخه Unicode تابع بطور مستقیم استفاده کنید، میتونید از _itow استفاده کنید. در کل، توصیه میشه تا از نسخه ایمن این توابع استفاده کنید (در مورد شما، _itot_s).

tdkhakpur
سه شنبه 29 اردیبهشت 1388, 14:08 عصر
سلام:
کدهای زیر رو استفاده کن کارت رو روبه راه میکنه:
موفق باشید


char str[20];
int number=1654;
strcpy(str, itoa(number, str, 10));

در فوق 10 طول رشته برای جاگیری عدد هست
برای برعکس این عمل از تابع زیر استفاده کن


int number;
number = atoi("5435");

meysamg_alone
سه شنبه 29 اردیبهشت 1388, 15:37 عصر
فقط یه سوال دیه
در چه صورت اون عدد 10 کم یا زیاد میشه یعنی همیشه ثابته ؟

tdkhakpur
سه شنبه 29 اردیبهشت 1388, 21:56 عصر
فقط یه سوال دیه
در چه صورت اون عدد 10 کم یا زیاد میشه یعنی همیشه ثابته ؟
سلام:
نه بسته به ظرفیت نوع عددت داره مثلا شما داخل یه int حداکثر 65535میتونی قرار بدی که 5 رقم داره اگه بالاتر بری منفی میشه

mehdi.mousavi
چهارشنبه 30 اردیبهشت 1388, 11:36 صبح
فقط یه سوال دیه در چه صورت اون عدد 10 کم یا زیاد میشه یعنی همیشه ثابته ؟

اون عدد 10، مبنا رو نشون میده. یعنی تعیین می کنید که این تبدیل string به عدد در چه مبنایی صورت بگیره و مقادیر معتبرش هم 2-36 هست.

در ضمن، در پاسخ عجیب tdkhakpur، باید بگم که مقادیر معتبر int از –2,147,483,648 تا 2,147,483,647 هستن. چیزی که ایشون گفتن، در مورد unsigned __int16 صادقه، که بهش unsigned short یا unsigned short int هم میگن و فقط 2 بایت هست.

tdkhakpur
چهارشنبه 30 اردیبهشت 1388, 15:12 عصر
باید بگم که مقادیر معتبر int از –2,147,483,648 تا 2,147,483,647 هستن
سلام:
عزیز من- خودت گمراهی برای چی مردم رو گمراه میکنی.
نوع intبرای windowsو dos اندازه اش فرق داره مصالب زیر رو در نظر بگیر انشا لله مشکل شما هم حل میشه.
int توی dos دو بایت طول داره حالا شما اون عددی رو که گفتی درش قرار بده.
int براز windos چهار بایت طول داره اون رو هم امتحان کن.
و دیگه هم از این کارها نکن آفرین.

mehdi.mousavi
چهارشنبه 30 اردیبهشت 1388, 16:09 عصر
سلام: عزیز من- خودت گمراهی برای چی مردم رو گمراه میکنی.
نوع intبرای windowsو dos اندازه اش فرق داره مصالب زیر رو در نظر بگیر انشا لله مشکل شما هم حل میشه. int توی dos دو بایت طول داره حالا شما اون عددی رو که گفتی درش قرار بده.
int براز windos چهار بایت طول داره اون رو هم امتحان کن. و دیگه هم از این کارها نکن آفرین.

اوه........... :قهقهه: تازه ممکنه تو MainFrame AS/400 هم int هشت بایت تعریف شده باشه، اما خوب، عموم کسانی که اینجا هستن، از ویندوز استفاده می کنن و با توجه به اینکه آخرین نسخه DOS، یعنی 6.22 تو سال 1993 یا 1994 به بازار عرضه شد، و الان 2009 هستش، یعنی 16، 17 سال از زمان اون سیستم عامل می گذره، طبیعی هستش که از دید من کاملا نادیده گرفته بشه.

در نهایت باید خدمتتون عرض کنم که همون 16-17 سال پیش هم، می تونستید روی CPU های 16 بیتی، برنامه رو با DOS Extender طوری کامپایل کنید، که int رو 32 بیت درنظر بگیره.

پاورقی: ...

tdkhakpur
چهارشنبه 30 اردیبهشت 1388, 18:11 عصر
سلام:

در نهایت باید خدمتتون عرض کنم که همون 16-17 سال پیش هم، می تونستید روی CPU های 16 بیتی، برنامه رو با DOS Extender طوری کامپایل کنید، که int رو 32 بیت درنظر بگیره
آقای تازه کار توجه کن ایشون یه سوالی در حد آموزش کرده و شما هم اگه میتونی جوابش رو بدی درست بده از فرضیات حرف نزن برو تو استانداردها میفهمی یه int در حالت استاندارد 2 بایت باید طول داشته باشه.
بزار بهت یاد بدم که همون int رو که میگی 8 بایت شده چطوری و از کجا اومده. کد زیر رو امید وارم حالی بشی.
موفق باشید


#define int double

mehdi.mousavi
چهارشنبه 30 اردیبهشت 1388, 19:13 عصر
سلام: آقای تازه کار توجه کن ایشون یه سوالی در حد آموزش کرده و شما هم اگه میتونی جوابش رو بدی درست بده از فرضیات حرف نزن برو تو استانداردها میفهمی یه int در حالت استاندارد 2 بایت باید طول داشته باشه. بزار بهت یاد بدم که همون int رو که میگی 8 بایت شده چطوری و از کجا اومده. کد زیر رو امید وارم حالی بشی. موفق باشید


#define int double


من کد رو حالیم شد، اما شما پاسخ قبلی منو، نه! این بحث، از جانب من، همینجا تمومه.

meysamg_alone
چهارشنبه 30 اردیبهشت 1388, 21:36 عصر
عجبا !:ناراحت: