شیوه دوم، از سمت چپ به راست :
مزیت این روش در اینه که صفر های سمت چپ رو بطور ذاتی اضافه می کنه، به همین دلیل برای اعدادی
که قراره طول ثابتی داشته باشند مناسبه.
فرض کنیم که بخواهیم ارقام عدد 1234 را به شیوه دوم یکی یکی جدا کنیم. فرض می کنیم که اعداد ما
همواره 4 رقمی هستند.
مرحله 1) اگر قرار باشه که طول عدد رو m رقمی در نظر بگیریم، مبنای عددی مورد نظر (مثلا 10) را به توان
m - 1 می رسانیم، مثلا اگر قرار است اعداد 4 رقمی را پردازش کنیم، 10 را به توان 3 می رسانیم، یعنی 1000
و نام مقدار حاصل را bindiv می گذاریم.
مرحله 2) هر بار حاصل تقسیم صحیح عدد به bindiv را حساب می کنیم تا اولین رقم سمت چپ جدا بشه،
مثلا باقیمانده تقسیم 1234 بر 1000 برابر 1 است، چون Multimedia Builder عملگر تقسیم صحیح (بدون اعشار) ندارد،
بایستی از تابع INT استفاده کنیم، مثلا کد زیر حاصل تقسیم صحیح 1234 بر 1000 را حساب می کند :
مرحله 3) بایستی آن رقم سمت چپ را از عدد کسر کنیم تا برای دریافت رقم بعدی آماده باشد، مثلا 1234
به 234 تبدیل شود. کافیست باقیمانده تقسیم عدد را بر bindiv را محاسبه کنیم.
مرحله 4) مقدار فعلی bindiv را بر مبنای عدد (مثلا 10) تقسیم می کنیم تا برای محاسبه رقم بعدی آماده باشد.
در مثالی که زدیم، 1000 را بر 10 تقسیم می کنیم تا 100 حاصل شود.
مرحله 5) مجددا از مرحله 1 کار را تکرار می کنیم، این عمل در کل به تعداد m بار (تعداد رقم ها) تکرار می شود
تا در نهایت bindiv به 0 رسیده باشد.
الگوریتم مورد اشاره در مورد هر مبانی عددی قابل استفاده است، کافیست بجای 10 مبنای مورد نظر را قرار داد،
مثلا 2 (مبانی باینری) یا 16 (مبانی هگزادسیمال)
چون ما در برنامه قبلی اعداد مبنای 16 ای با طول ثابت 8 رقمی ایجاد می کردیم، این روش مطلوب ما بود و
بکار برده شد.
نمونه برنامه ای را ایجاد کردم که قابلیت تبدیل یک عدد از مبنای دسیمال (مبنای 10) به یکی از مبناهای عددی
باینری (مبنای 2) ، اوکتال (مبنای 8) و هگزادسیمال (مبنای 16) را دارد.
کنترلهای RadioButton و تیک صحت درستی و نادرستی عدد وارد شده، از خصوصیات بارز این برنامه است.
پروژه mbd برنامه بصورت zip شده ضمیمه این پست می باشد.