تبلیغات
Pro4 programming - Universal converter

نویسنده :Pourya Alinezhad
تاریخ:1388/11/18-23:21

Universal converter

بعد از 17 روز تمام برنامه نویسی....

این برنامه که برای نوشتنش مجبور شدم اسمبلی یاد بگیرم، توانایی تبدیل اعداد بین کدها و مبناهای مختلف را دارد.

در این برنامه کاربر با وارد کردن عدد در مبنای ده می تواند معادل باینری آن را به 7 صورت که در زیر آورده شده است مشاهده کند.این 7 شکل در زیر آورده شده است.

1-مکمل یک  ((1's complement

2-مکمل دو (2's complement )

3-هم طول با مقدار(Variable Length )

4–شانزده بیتی (صحیح بدون علامت) ( (16 bit

5-ممیز شناور(Floating-Point)                                     

6-ممیز ثابت(Fixed-Point)

7- BCD : Binary Coded Decimal

همچنین عدد وارد شده در مبنای شانزده نیز به نمایش در خواهد آمد.معادل ASCII ،عددِ در مبنای ده نیز در textbox چهارم نمایش داده می شود.

کاربر می تواند با انتخاب گزینه های دیگر ( Decimal ,Binary ,Hex , ASCII) به تبدیل بین انواع مختلف به صورت عکس بپردازد.برای مثال با انتخاب گزینه ی  Binary و مشخص کردن نوع آن (یکی از 7 مورد بالا) ، معادل مبنای ده و شانزده و همچنین کد اَسکی آن را دریافت کند.

این برنامه کاملا به طور هوشمند نوشته شده است و تمامی قوانین حاکم بین اعداد و کدها رعایت شده و به طور اتوماتیک توسط برنامه اجرا می شوند.برای مثال اگر کاربر برای تبدیل عدد باینریی که ممیز شناور است تعدادی کمتر از 32 بایت را وارد کند،خود برنامه طول عدد وارد شده را کنترل می کند و آن را به 32 بیت افزایش می دهد و یا به عنوان مثالی دیگر اگر برای گرفتن معادل باینری عددی به صورت BCD ،عددی منفی در کادر decimal تایپ شود،برنامه به صورت خودکار عدد منفی را تشخیص داده وآن را پس از مثبت نمودن،به BCD تبدیل می کند.(توجه شود که BCD استفاده شده در این برنامه از نوع غیر فشرده می باشد.)

بحث درباره ی انواع این کدها و خصوصیات هر کدام در پستهای آینده.

همچنین این برنامه قابلیت کنترل اعداد ورودی را دارد،به این معنی که در کادر های مخصوص ورودی (برای مثال binary) امکان وارد کردن عددی به جز 0 و 1 وجود ندارد.

در این برنامه از بیش از 150 تابع مختلف استفاده شده است که از این میان 5 تابع از نوع توابع API هستند.(برای دانلود مقاله ای که درباره ی توابع API نوشته بودم اینجا کلیک کنید.) و توابع باقی مانده عموما دارای پارامتر هایی از نوع string  و نوع بازگشتی string  هستند.تا آنجایی که مقدور بوده سعی کردم که از ارسال پارامترها با ارجاع خودداری کنم و به همین دلیل این برنامه کاملا به صورت functional نوشته شده و هیچ روالی در آن به کار برده نشده است.(به جز برای کنترل Active X ها)

فایل اجرایی نسخه ی ارائه شده ی این برنامه  (version:2.5.7 ) (نسخه ی بتا)  را آپلود کردم و قسمتی از سورس کد آن را به صورت PDF همراه آن آورده ام.هنوز قسمت هایی از برنامه مانند help و قسمت های کوچک کنترل کننده ی بازه ی اعداد باقی مانده که به زودی کامل خواهد شد.سورس کامل برنامه هم همراه نسخه ی کامل ارائه می شود.

این برنامه قابل استفاده برای برنامه نویسان به زبان اسمبلی و عموما زبان های سطح پایین و میانی است. همچنین آشنایی با طریقه ی برنامه نویسی این برنامه کمک خوبی برای مهندسین برق و کامپیوتر برای فهم بهتر درس های مدار منطقی و میکروپروسسور خواهد بود.

توجه: تبدیلات و طول های اعداد باینری در این برنامه بر مبنای میکروپروسسور 8086 می باشد.(طول اعداد مکمل یک و دو در طولهای BYTE,WORD,DWORD آورده شده است.

توضیحات تکمیلی درباره ی این برنامه را همراه با برنامه کامل و قابل نصب خواهم آورد.برنامه ی کامل قابل نصب بر روی ویندوز ویستا و لینوکس نیز می باشد.برای دانلود   اینجا کلیک کنید.

pic