ابتدا مقاله با تعریف مبنا به همراه سیستم اعداد دهدهی و باینری آشنا خواهید شد که در ادامه روشهای تبدیل مبنا 10 به 2 و تبدیل مبنا 2 به 10 به همراه تست جواب بهدستآمده از تبدیل مبنا 10 به 2 اشاره شده است و همچنین با تبدیل اعداد اعشاری از مبنا 10 به 2 و الگوریتمآموزش طراحی الگوریتم به زبان سادهدرس طراحی الگوریتم یکی از مهمترین و بنیادیترین دروس رشته کامپیوتر است. هدف از این درس، معرفی روشهای مختلف طراحی الگوریتمها برای حل مسائل گوناگون است، در این صفحه به معرفی و آموزش طراحی الگوریتم پرداخته شده است. تبدیل مبناهای گفته شده به همراه روشهای مختلف کدزنی آنها در زبان برنامه نویسی پایتون آموزش جامع پایتونپایتون فقط برای برنامه نویسان و دانشمندان داده نیست! یادگیری پایتون میتواند فرصتهای جدیدی را برای کسانی که در حرفههای کمتر دادهمحوری مثل روزنامهنگاری، صاحبان مشاغل کوچک یا بازاریابی رسانههای اجتماعی هستند، ایجاد کند. آشنا خواهید شد.
مبنا چیست؟
مبنا به معنی اساس و پایه یک چیز است. مبنا در ریاضیات به معنای تعداد رقمهای منفردی است که برای نوشتن عدد در دستگاه عددنویسی باارزش مکانی لازم است بهعنوانمثال در عددنویسی دهدهی که رایجترین دستگاه در جهان امروز است از ده رقم 0 تا 9 استفاده میکنیم؛ بنابراین پایه این دستگاه ده است در مبنای باینری یا دودویی دو عدد صفر و یک را داریم؛ یعنی دو عدد میشود.
سیستم اعداد دهدهی یا دسیمال
سیستم اعداد دهدهی یا دسیمال، سیستمی است که ما در زندگی روزمره برای شمارش استفاده میکنیم. در این سیستم، ده رقم وجود دارد که شامل اعداد 0 تا 9 است. به همین علت، این سیستم به نام سیستم دهدهی نامیده میشود. در سیستم عددی دهدهی، کوچکترین عدد 0 و بزرگترین عدد 9 است. هر رقم در این سیستم ده برابر رقم قبل از خود است. بهعنوانمثال، در عدد 15203، رقم 1 نشاندهنده ده هزارگان (1×10000)، رقم 5 نشاندهنده هزارگان (5×1000)، رقم 2 نشاندهنده صدگان (2×100)، رقم 0 نشاندهنده دهگان (0×10) و رقم 3 نشاندهنده یکان (3×1) است.
سیستم اعداد دودویی یا باینری
سیستم اعداد دودویی یا باینری، سیستم عددی است که فقط از دو رقم 0 و 1 استفاده میکند. در سیستم عددی دودویی، کوچکترین عدد 0 و بزرگترین عدد 1 است. هر رقم در این سیستم دو برابر رقم قبل از خود است. به عنوان مثال: عدد 100110
تبدیل از مبنا 10 به 2
تبدیل اعداد از مبنای 10 به مبنای 2 یک فرآیند ساده است که با تقسیم متوالی بر عدد 2 انجام میشود. در این فرآیند، عدد مورد نظر (در مبنای 10) بر عدد 2 تقسیم میشود. این تقسیم یک باقیمانده (0 یا 1) و یک خارج قسمت دارد. تا زمانی که خارج قسمت صفر شود، تقسیمها بر 2 را انجام میدهیم. سپس باقی مانده ها را از انتها به اول می نویسیم تا عدد دودویی حاصل شود. برای مثال، فرض کنید میخواهیم عدد 12 را از مبنای 10 به 2 تبدیل کنیم:
برای اطمینان از نتیجه تبدیل مبنا 10 به مبنا 2 لازم است آن را از مبنا دودویی به مبنا دهدهی تبدیل کنید .
تبدیل مبنا از 2 به 10
برای تبدیل یک عدد از باینری به دهدهی، شما باید هر رقم باینری را در 2 به توان مکان آن (شروع از صفر) ضرب کنید و سپس آنها را با هم جمع کنید. بهعنوانمثال، اگر میخواهید عدد باینری 1100 را به دهدهی تبدیل کنید، میتوانید این کار را انجام دهید:
12= 0+ 0 + 4 + 8 = 0^2*0 +1^2^0 + 2^2∗1 + 3^2*1
پس، 1100 باینری در مثال قبل برابر با 12 دهدهی است.
جدول تبدیل اعداد مبنا 10 به مبنا 2 :
تبدیل مبنای اعداد اعشاری از مبنای 10 به مبنا 2
برای تبدیل یک عدد اعشاری از مبنای 10 به 2، میتوانید از روش زیر استفاده کنید:
- بخش صحیح عدد را به باینری تبدیل کنید. این کار را با تقسیم مکرر بر 2 و ثبت باقیماندهها انجام میدهیم.
- برای بخش اعشاری، آن را در 2 ضرب کنید و بخش صحیح آن را ثبت کنید. سپس باقیمانده را دوباره در 2 ضرب کنید و این کار را تا زمانی که به عدد 0 برسید یا تا تعداد دقت مورد نظر ادامه دهید.
- ادغام بخش صحیح و اعشاری باینری برای دریافت عدد نهایی باینری.
بهعنوانمثال، اگر میخواهید عدد 10.625 را از مبنا 10 به 2 تبدیل کنید:
- بخش صحیح (10) به باینری تبدیل میشود به: 1010
- بخش اعشاری (0.625) به باینری تبدیل میشود به: .101
- پس عدد باینری نهایی میشود: 1010.101
الگوریتم تبدیل مبنا از 10 به 2
الگوریتم تبدیل مبنا 10 به 2
یکی از روشها برای تبدیل مبنا 10 به 2 تقسیم متوالی میباشد.
عدد ورودی کاربر را اینقدر بر 2 تقسیم میکنیم تا به صفر برسیم.
در هر بار تقسیم باقیماندهها را در کنار هم قرار میدهیم و به عدد در مبنای 2 میرسیم.
الگوریتم تبدیل مبنا 10 به 2 به شرح زیر است:
1. شروع
2. number را دریافت کن
3. binary = 0
4. I = 0
5. d = 0
6. d = number % 2
7. binary = binary + d * 10^I
8. I = I + 1
9. number = number / 2
10. if number! = 0 go to 6
11. print binary
12. finish
فلوچارتفلوچارت چیست؟ | آموزش الگوریتم فلوچارت | رسم فلوچارتاین مقاله عالی به آموزش رسم فلوچارت برای الگوریتم ها پرداخته و مواردی چون رسم فلوچارت، معرفی برنامه فلوچارت، نمونه سوالات الگوریتم و فلوچارت را بررسی کرده در نرمافزار فلوگوریتم رسم شده است. ابتدا با همان روش تقسیم متوالی فلوچارت تبدیل مبنا 10 به 2 را رسم میکنید. ولی در ادامه از آرایهای برای نمایش اعداد استفاده میکنید. در ابتدا عناصر آرایه را منفی یک در نظر میگیرید و سپس یکییکی باقیماندهها را در آن ذخیره میکنید. در انتها آرایه را برعکس پیمایش میکنید و اعداد 0 یا 1 را یکییکی نمایش میدهید.
برنامه تبدیل عدد از مبنای ۱۰ به ۲ با روش تکرارشونده
برای هر عددی، میتوان بررسی کرد که i امین بیت آن صفر (خاموش) یا یک (روشن) است.
- عدد «NUM» از ورودی دریافت میشود. هدف بررسی این است که بیت صفرم آن، روشن (۱) یا خاموش (۰) است.
- bit = 2 ^ 0 هدف بررسی بیت صفرم است، بنابراین (i = 0)
- اگر NUM & bit == 1 باشد، بدین معنا است که 0اُمین بیت روشن و در غیر این صورت، 0اُمین بیت خاموش است.
- به طور مشابه، اگر هدف بررسی این است که آیا ۵اُمین بیت روشن یا خاموش است، اعمال زیر باید انجام شود.
- bit = 2 ^ 5 هدف بررسی بیت پنجم است، بنابراین (i=5)
- اگر NUM & bit == 1 باشد، بدین معنا است که 5اُمین بیت روشن (۱) و در غیر این صورت، به معنای خاموش بودن (۰) بیت مذکور است.
عدد صحیح بدون علامت (Unsigned Integer) سی و دوبیتی (۳۲ بیتی) که حاوی ۳۱-۰ بیت است، از ورودی دریافت میشود. برای چاپکردن ارائه دودویی عدد صحیح بدون علامت، کار از ۳۱اُمین بیت آغاز و بررسی میشود که بیت مذکور خاموش یا روشن است. اگر این بیت روشن باشد، «۱» و در غیر این صورت، صفر (۰) چاپ میشود. اکنون، بررسی میشود که بیت ۳۰اُم روشن یا خاموش است. اگر این بیت روشن باشد مقدار ۱ و در غیر این صورت، ۰ در خروجی چاپ میشود. این کار برای همه بیتها از ۳۱ تا ۰ باید انجام شود. در نهایت، ارائه دودویی عدد در خروجی دریافت خواهد شد.
void bin(unsigned n)
{
unsigned i;
for(i = 1 <<31; i>0; i=i/2)
(n & i)? printf("1"): printf("0");
}
int main(void)
{
bin(7);
printf("\n");
bin(4);
}
برنامه تبدیل مبنا 10 به 2 به روش بازگشتی
الگوریتم بازگشتیتوضیح تابع بازگشتی، دنباله بازگشتی و رابطه بازگشتیاین صفحه عالی به توضیح تابع بازگشتی و دنباله بازگشتی و رابطه بازگشتی پرداخته و توضیح داده تابع بازگشتی چیست و چگونه کار می کند و کاربرد توابع بازگشتی را گفته (Recursive Method) تبدیل عدد NUM از مبنای ۱۰ به ۲ (دستگاه دودویی) ارائه شده است.
1-اگر NUM > 1
- NUM را در پشته قرار بده
- بهصورت بازگشتی، تابع با NUM / 2 را فراخوانی کن.
2-و
- NUM را از پشته حذف (POP) کن، آن را بر دو تقسیم و باقیمانده تقسیم را چاپ کن.
برنامه بازگشتی تبدیل عدد از مبنای ۱۰ به ۲ در پایتون ۳
def bin(n):
if n>1:
bin (n//2)
print(n % 2,end="")
if __name__ == "__main__" :
bin(7)
print()
bin(4)
برنامه تبدیل عدد از مبنای ۱۰ به ۲ با روش بازگشتی و عملگر بیتی
مراحل تبدیل یک عدد اعشاری به عدد دودویی:
- n > 0 را بررسی کن.
- عدد را یک بیت به سمت راست شیفت بده و تابع بازگشتی را فراخوانی کن.
- بیتهای عدد را چاپ کن.
def bin(n):
if n>1:
bin (n>>1)
print(n & 1,end="")
#Driver code
bin(131)
print()
bin(3)
جمعبندی
مبنا به معنی اساس و پایه یک چیز است. در مبنا دهدهی از ده رقم 0 تا 9 استفاده میشود و در مبنای باینری یا دودویی دو عدد صفر و یک را وجود دارد. برای تبدیل اعداد از مبنای 10 به 2 تقسیم متوالی بر عدد 2 انجام میشود. برای اطمینان از درستی نتیجه، آن را از مبنا باینری به مبنا دهدهی تبدیل میکنید برای تبدیل یک عدد از باینری به دهدهی، شما باید هر رقم باینری را در 2 به توان مکان آن ضرب کنید و سپس آنها را با هم جمع کنید.
برای تبدیل اعداد اعشاری از مبنا 10 به 2 بخش صحیح مانند قبل است اما برای بخش اعشاری، آن را در 2 ضرب کنید و بخش صحیح آن را ثبت کنید. در ادامه هم با الگوریتم تبدیل مبنا 10 به 2 و برنامه تبدیل عدد از مبنا 10 به 2 به روش های مختلف در زبان برنامه نویسی پایتون آشنا شدید.
سیستم اعداد دهدهی و باینری را توضیح دهید.
سیستم اعداد دهدهی یا دسیمال، سیستمی که ده رقم دارد که شامل اعداد 0 تا 9 است. در این سیستم، کوچکترین عدد 0 و بزرگترین عدد 9 است. هر رقم در این سیستم ده برابر رقم قبل از خود است.
سیستم اعداد دودویی یا باینری، سیستم عددی است که فقط از دو رقم 0 و 1 استفاده میکند. در سیستم عددی دودویی، کوچکترین عدد 0 و بزرگترین عدد 1 است. هر رقم در این سیستم دو برابر رقم قبل از خود است.
تبدیل از مبنا دهدهی به دودویی به چه صورت انجام می شود؟
تبدیل اعداد از مبنای 10 به 2 با تقسیم متوالی بر عدد 2 انجام میشود. در این فرآیند، عدد مورد نظر (در مبنای 10) بر عدد 2 تقسیم میشود. این تقسیم یک باقیمانده (0 یا 1) و یک خارج قسمت دارد. تا زمانی که خارج قسمت صفر شود، تقسیمها بر 2 را انجام میدهیم. سپس باقی مانده ها را از انتها به اول می نویسیم تا عدد دودویی حاصل شود.
برای تبدیل قسمت اعشاری مبنا دهدهی به باینری چه فرایندی باید انجام شود؟
برای بخش اعشاری، آن را در 2 ضرب کنید و بخش صحیح آن را ثبت کنید. سپس باقیمانده را دوباره در 2 ضرب کنید و این کار را تا زمانی که به عدد 0 برسید یا تا تعداد دقت مورد نظر ادامه دهید.
روشهای برنامه تبدیل مبنا 10 به 2 را نام ببرید.
1- تکرار شونده 2- بازگشتی 3- بازگشتی و عملگر بیتی
برنامه تبدیل مبنا 10 به 2 به روش بازگشتی را توضیح دهید.
الگوریتم بازگشتی (Recursive Method) تبدیل عدد NUM از مبنای ۱۰ به مبنای ۲
1-اگر NUM > 1 =NUMرا در پشته قرار بده و سپس به صورت بازگشتی، تابع با NUM / 2 را فراخوانی کن.
2-NUM را از پشته حذف (POP) کن، آن را بر دو تقسیم و باقیمانده تقسیم را چاپ کن.