شروع مقاله با چطور مبناها را به یکدیگر تبدیل کنیم است که روشهای تبدیل به مبنا 10 و تبدیل از مبنا 10 به مبنا دیگر می باشد که در اینجا تبدیل مبنا 10 به 16 انتخاب شده است و در ادامه سیستم دودویی و هگزادسیمال معرفی می شود و روش تبدیل مبنا 10 به 16 و همین طور الگوریتم تبدیل مبنا 10 به 16 به همراه پیاده سازی الگوریتم به صورت بازگشتی در زبان برنامه نویسی پایتون آموزش جامع پایتونپایتون فقط برای برنامه نویسان و دانشمندان داده نیست! یادگیری پایتون میتواند فرصتهای جدیدی را برای کسانی که در حرفههای کمتر دادهمحوری مثل روزنامهنگاری، صاحبان مشاغل کوچک یا بازاریابی رسانههای اجتماعی هستند، ایجاد کند. آشنا خواهید شد.
چطور مبناها را به یکدیگر تبدیل کنیم
برای تبدیل مبناها، میتوانید از روشهای زیر استفاده کنید:
- تبدیل به مبنای 10: اگر عددی در مبنای b دارید و میخواهید آن را به مبنای 10 تبدیل کنید، میتوانید از فرمول زیر استفاده کنید:
- تبدیل از مبنای 10 به مبنای دیگر: اگر عددی در مبنای 10 دارید و میخواهید آن را به مبنای b تبدیل کنید، میتوانید عدد را بر b تقسیم کنید و باقیمانده را ثبت کنید. سپس عدد حاصل خارج قسمت را دوباره بر b تقسیم کنید و باقیمانده را ثبت کنید. این کار را تا زمانی که عدد حاصل خارج قسمت صفر شود ادامه دهید. عدد مورد نظر در مبنای b، باقیماندههای به دست آمده به ترتیب معکوس خواهد بود.
- تبدیل مستقیم از یک مبنا به مبنای دیگر: اگر میخواهید عددی را از مبنای b1 به مبنای b2 تبدیل کنید، میتوانید ابتدا آن را به مبنای 10 تبدیل کنید و سپس از مبنای 10 به مبنای b2 تبدیل کنید.
N_10=d_0*b^0+d_1*b^1+d_2*b^2+⋯+d_n*b^n
که در آن N عدد موردنظر، dها رقمهای عدد در مبنای b و n تعداد رقمها - 1 است.
قبل از تبدیل مبنا از 10 به 16 با سیستم ده دهی و سیستم هگزادسیمال آشنا خواهید شد.
سیستم عددی ده دهی
سیستم عددی ده دهی یا مبنای 10، سیستمی است که در آن 10 رقم از 0 تا 9 استفاده میشود. این سیستم عددی بیشترین استفاده را در زندگی روزمره و علوم دارد. در این سیستم، هر رقم در مکان خود بر اساس توانهای 10 ارزش دارد.
فرض کنید عدد 4567 را داریم:
0 ^ 10*7 + 1 ^ 10*6 + 2 ^ 10*5 + 3 ^ 10*4
که برابر است با:
4567 = 7 + 60 + 500 + 4000
در اینجا، هر رقم بر اساس مکان خود در عدد، ارزش متفاوتی دارد.
سیستم عددی هگزادسیمال
دستگاه اعداد پایه ۱۶ یا دستگاه شانزده شانزدهی در علوم رایانه و ریاضیات، سامانه عددنویسی بر پایه ۱۶ است. این سیستم از نمادهای ۰ تا ۹ برای مقادیر صفر تا نه و از حروف A, B, C, D, E, F برای مقادیر ده تا پانزده استفاده میکند.
2A3 در سیستم هگزادسیمال به این صورت تفسیر میشود:
0 ^ 16*3 + 1 ^ 16*10 + 2 ^ 16*2
که برابر است با:
675 = 3 + 160 + 512
تبدیل مبنا 10 به 16
تبدیل مبنا 10 به 16 به این صورت است:
- ابتدا عدد موردنظر را بر 16 تقسیم میکنیم.
- سپس باقیمانده را ثبت میکنیم. این باقیمانده اولین رقم عدد در مبنای 16 است.
- عملیات تقسیم را با خروجی قبلی (بخش عدد تقسیم بر 16) تکرار میکنیم و باقیمانده را ثبت میکنیم.
- این فرایند را تا زمانی که خروجی تقسیم برابر با صفر شود، ادامه میدهیم.
- در نهایت، باقیماندههای بهدستآمده را از راست به چپ میخوانیم. این عدد نهایی از مبنا 10 به 16 است.
برای مثال، برای تبدیل عدد 10 از مبنای 10 به 16:
- 10 را بر 16 تقسیم میکنیم. خروجی 0 و باقیمانده 10 است.
- چون خروجی تقسیم برابر با صفر است، فرایند را متوقف میکنیم.
- باقیمانده (10) را در مبنای 16 مینویسیم. در مبنای 16، 10 برابر است با ‘A’
- بنابراین، عدد 10 در مبنای 10 برابر است با ‘A’ در مبنای 16.
تبدیل مبنا 16 به 10
تبدیل مبنای 16 به 10 برعکس تبدیل مبنا 10 به 16 است :
- هر رقم عدد در مبنای 16 را با 16 به توان مکان آن رقم (شروع از 0 از سمت راست) ضرب میکنیم.
- سپس همه این مقادیر را با هم جمع میکنیم.
برای مثال، برای تبدیل عدد ‘A’ از مبنای 16 به مبنای 10:
- ‘A’ در مبنای 16 برابر است با 10 در مبنای 10.
- چون ‘A’ در مکان صفر قرار دارد (شروع از سمت راست)، پس 10 را در (16 به توان 0) ضرب میکنیم که برابر است با 10.
- بنابراین، عدد ‘A’ در مبنای 16 برابر است با 10 در مبنای 10.
الگوریتم تبدیل مبنا 10 به 16
گامهای الگوریتم تبدیل مبنای 10 به 16 :
- ابتدا یکرشته برای ذخیره نتیجه ایجاد میکنیم. در اینجا، hex_value نام دارد و ابتدا خالی است.
- سپس یک لیست برای نمایش اعداد بزرگتر از 9 در مبنای 16 ایجاد میکنیم. در اینجا، hex_digits نام دارد و شامل اعداد 0 تا 9 و حروف a تا f است.
- حالا یک حلقه شروع میکنیم که تا زمانی که عدد موردنظر بزرگتر از صفر است، ادامه دارد.
- در هر دور حلقه، عدد موردنظر را بر 16 تقسیم میکنیم و باقیمانده را میگیریم. این باقیمانده رقم بعدی عدد در مبنای 16 است.
- باقیمانده را به hex_value اضافه میکنیم. توجه داشته باشید که باقیمانده را در ابتدای hex_value قرار میدهیم، زیرا رقم آخر عدد در مبنای 16 اولین باقیماندهای است که میگیریم.
- سپس عدد موردنظر را بر 16 تقسیم میکنیم و خروجی را برای دور بعدی حلقه ذخیره میکنیم.
- این فرایند را تا زمانی که عدد موردنظر صفر شود، ادامه میدهیم.
- در نهایت، hex_value را برمیگردانیم که نمایش عدد موردنظر از مبنا 10 به 16 است.
برنامه تبدیل مبنا 10 به 16 به صورت بازگشتی با زبان برنامه نویسی پایتون
تابع decimal_to_hexadecimal ، یک تابع بازگشتی است که یک عدد صحیح را در مبنای 10 گرفته و آن را به مبنای 16 تبدیل میکند.
این تابع به شرح زیر عمل میکند:
- مورد پایه: اگر عدد ورودی برابر با صفر باشد، تابع یکرشته خالی برمیگرداند. این مورد پایه است که باعث میشود تابع بازگشتی متوقف شود.
- مورد بازگشتی: در غیر این صورت، تابع باقیمانده عدد را با 16 حساب میکند. این باقیمانده نشاندهنده رقم سمت راست عدد در مبنای 16 است.
- اگر باقیمانده کمتر از 10 باشد، آن را به یک رشته تبدیل میکنیم.
- اگر باقیمانده بزرگتر یا مساوی 10 باشد، آن را به یک حرف در مبنای 16 تبدیل میکنیم. برای این کار، ما از تابع chr و ord استفاده میکنیم. برای مثال، chr(ord('A') + remainder - 10) عدد 10 را به ‘A’، عدد 11 را به ‘B’، و غیره تبدیل میکند.
- سپس تابع خودش را با عدد صحیح قسمت عدد بر 16 فراخوانی میکند. این عملیات باعث میشود که رقم بعدی عدد در مبنای 16 حساب شود.
- در نهایت، تابع رشته باقیمانده را به رشته خروجی تابع بازگشتی اضافه میکند و آن را برمیگرداند.
برنامه تبدیل مبنا 16 به 10 به روش بازگشتی با زبان برنامه نویسی پایتون
این تابع به شرح زیر عمل میکند:
- مورد پایه: اگر رشته ورودی خالی باشد، تابع عدد صفر را برمیگرداند. این مورد پایه است که باعث میشود تابع بازگشتی متوقف شود.
- مورد بازگشتی: در غیر این صورت، تابع رقم آخر رشته را بررسی میکند. این رقم نشاندهنده رقم سمت راست عدد در مبنای 16 است.
- سپس تابع خودش را با رشته بدون رقم آخر فراخوانی میکند. این عملیات باعث میشود که رقم بعدی عدد در مبنای 10 حساب شود.
- در نهایت، تابع عدد حاصل از ضرب عدد خروجی تابع بازگشتی در 16 و عدد رقم آخر را برمیگرداند.
جمعبندی
روشهای تبدیل مبناها، شامل: تبدیل به مبنای 10، تبدیل از مبنای 10 به مبنای دیگر و تبدیل مستقیم از یک مبنا به مبنای دیگر است که ما تبدیل مبنا 10 به 16 را بررسی کردیم وبا سیستم عددی دودویی و هگزادسیمال آشنا شدیم و آموختید که در روش تبدیل مبنا از 10 به 16، عدد مبنای 10 را بر 16 تقسیم میکنید و باقیمانده را ثبت میکنید. این فرایند را تا زمانی که خروجی تقسیم صفر شود، ادامه میدهید. سپس باقیماندهها را از پایینبهبالا میخوانید تا عدد مبنای 16 را به دست آورید و همینطور با تبدیل مبنا از 16 به 10 نیز آشنا شدید و در ادامه الگوریتم تبدیل مبنا 10 به 16 به همراه پیادهسازی این الگوریتم به روش بازگشتی با زبان برنامه نویسی پایتون نیز آشنا شدید.
روش های تبدیل مبنا به یکدیگر را نام ببرید.
1-تبدیل به مبنای 10 2- تبدیل از مبنای 10 به مبنای دیگر 3-تبدیل مستقیم از یک مبنا به مبنای دیگر
سیستم عددی دهدهی و هگزادسیمال را تعریف کنید.
سیستم عددی دهدهی یا مبنای 10، سیستمی است که در آن 10 رقم از 0 تا 9 استفاده میشود. در این سیستم، هر رقم در مکان خود بر اساس توانهای 10 ارزش دارد.
سیستم عددی هگزادسیمال، این سیستم از نمادهای ۰ تا ۹ برای مقادیر صفر تا نه و از حروف A, B, C, D, E, F برای مقادیر ده تا پانزده استفاده میکند.
تبدیل مبنا از 10 به 16 را توضیح دهید.
1-ابتدا عدد مورد نظر را بر 16 تقسیم میکنیم. 2-سپس باقیمانده را ثبت میکنیم. این باقیمانده اولین رقم عدد در مبنای 16 است. 3-عملیات تقسیم را با خروجی قبلی (بخش عدد تقسیم بر 16) تکرار میکنیم و باقیمانده را ثبت میکنیم. 4-این فرآیند را تا زمانی که خروجی تقسیم برابر با صفر شود، ادامه میدهیم. 5-در نهایت، باقیماندههای به دست آمده را از راست به چپ میخوانیم. این عدد نهایی در مبنای 16 است.
الگوریتم تبدیل مبنا از 10 به 16 را شرح دهید.
1-ابتدا یک رشته برای ذخیره نتیجه ایجاد میکنیم. ابتدا خالی است. 2-سپس یک لیست برای نمایش اعداد بزرگتر از 9 در مبنای 16 ایجاد میکنیم. 3-حالا یک حلقه شروع میکنیم که تا زمانی که عدد مورد نظر بزرگتر از صفر است، ادامه دارد. 4-در هر دور حلقه، عدد مورد نظر را بر 16 تقسیم میکنیم و باقیمانده را میگیریم. این باقیمانده رقم بعدی عدد در مبنای 16 است. 5-سپس عدد مورد نظر را بر 16 تقسیم میکنیم و خروجی را برای دور بعدی حلقه ذخیره میکنیم. 6-این فرآیند را تا زمانی که عدد مورد نظر صفر شود، ادامه میدهیم.
برنامه تبدیل مبنا از 10 به 16 به روش بازگشتی با زبان برنامه نویسی پایتون را توضیح دهید.
1-مورد پایه: اگر عدد ورودی برابر با صفر باشد، تابع یک رشته خالی برمیگرداند. 2-مورد بازگشتی: در غیر این صورت، تابع باقیمانده عدد را با 16 حساب میکند. 3-سپس تابع خودش را با عدد صحیح قسمت عدد بر 16 فراخوانی میکند. این عملیات باعث میشود که رقم بعدی عدد در مبنای 16 حساب شود. 4-در نهایت، تابع رشته باقیمانده را به رشته خروجی تابع بازگشتی اضافه میکند و آن را برمیگرداند.