کاربرد و پروژه اینترنت اشیا
۲۱ بهمن ۱۳۹۷پیادهسازی کنترلر PID در نرم افزار MATLAB به کمک درایور MDC20
۲۱ بهمن ۱۳۹۷اعداد دسیمال، باینری، اوکتال و هگزادسیمال چیست؟
مقدمه
فلسفه وجودی اعداد به نیاز بشر برای شمارش برمیگردد. اعداد در دنیای امروز بخشی جدانشدنی از زندگی روزمرهی ما میباشند. جالب است بدانید همین کلماتی که در حال خواندن آنها هستید به صورت کدهای صفر و یک برروی کامپیوتر شما ثبت میشوند. اعداد دسیمال، باینری، اوکتال و هگزادسیمال همگی نمایشهای مختلف برای یک چیز یکسان میباشند. وقتی از عددی مثل 68 صحبت میکنیم، منظورمان یک مقدار عددی است که در مبنای ده (دسیمال) به صورت 68 نمایش داده میشود. اما اگر همین عدد را بخواهیم در مبنای دو (باینری) نمایش دهیم، حاصل بهصورت 1000100 میشود و اگر همین عدد را در مبنای هشت (اوکتال) نمایش دهیم حاصل به صورت 104 بوده و در نهایت اگر همین عدد را در مبنای شانزده (هگزادسیمال) نمایش دهیم حاصل به صورت 44 خواهد شد.
اعداد دسیمال
ٌٌٌ اعداد در این مبنا دارای ۱۰ رقم معنی دار 0، 1، … 9 میباشند. دلیل استفاده از علامتهای 0، 1،…9 برای این نه رقم معنیدار به تعداد شکستگیها (زوایا) در نمایش آنها برمیگردد.
در نمایش اعداد در مبنای ده، ارقام به ترتیب از سمت راست به چپ یکان، دهگان، صدگان و … نامیده میشوند که ارزش هر رقم را بیان میکند. به عنوان مثال عدد 368 شامل سه بسته صدتایی، 6 بسته دهتایی و 8 یکی میباشد.
اعداد باینری
اعداد را میتوان در هر مبنای دلخواهی نمایش داد اما مهم این است که آیا این نمایش در دنیای واقعی کاربرد دارد یا نه. اعداد دسیمال از اولین اعدادی بودند که به دلیل نیاز بشر به شمارش و گسترش ریاضیات اختراع شدند. با توسعهی کامپیوتر و سیستم های دیجیتال اعداد در مبنای دو نیز مطرح شدند. دلیل استفاده از مبنای دو در سیستمهای دیجیتال به ساختار فیزیکی این سیستمها مربوط میباشد. از آنجایی که قطعات دیجیتال از واحدهایی بهنام ترانزیستور که ادواتی با دوحالت کاری میباشند تشکیل شدهاند، بنابراین این دوحالت را میتوان با 0 و 1 نمایش داد، در این صورت استفاده از مبنای دو انجام محاسبات در سیستمهای دیجیتال را امکانپذیر میکند.
تبدیل اعداد دسیمال به باینری
به عنوان مثال برای تبدیل عدد 368 در مبنای 10 به معادل آن در مبنای دو، یک الگوریتم تقسیمات متوالی بر 2 میباشد:
در تقسیمات متوالی فوق علامت // به معنای خارج قسمت و علامت rem به معنای باقیمانده میباشد. بهعنوان مثال:
rem=0 368//2=184 به این معنی میباشد که خارج قسمت تقسیم عدد 368 بر 2 برابر 184 و باقیمانده آن برابر 0 میباشد.
حال اگر مقادیر باقیمانده را از پایین به بالا کنارهم بگذاریم معادل مبنای دو عدد 368 بدست میآید:
یک روش دیگر که میتوان سریعتر از روش فوق عدد معادل در مبنای دو را بدست آورد بهصورت زیر میباشد:
روش فوق شاید در ابتدا سختتر و کندتر از روش قبل باشد ولی پس از چندین بار تمرین به سادگی و سریعتر بودن آن پی خواهید برد.
اعداد اوکتال
اعداد اوکتال، اعدادی در مبنای هشت میباشند. برای تبدیل اعداد دسیمال به اوکتال میتوان از روش تقسیمات متوالی بر هشت مشابه قسمت قبل استفاده کرد.
تبدیل اعداد باینری به اوکتال
فرض کنید میخواهیم عدد 101110000 در مبنای دو را به معادل آن در مبنای هشت تبدیل کنیم. برای این منظور ارقام را از سمت راست سه تا سه تا جدا میکنیم و بهجای هر سه تایی رقم معنی دار، آن در مبنای هشت را میگذاریم. برای این منظور از جدول زیر استفاده می کنیم:
جدول1: ارقام معنی دار در مبنای هشت
در نتیجه داریم:
دقت کنید در صورتی که عدد باینری دارای تعداد ارقامی باشد که مضربی از سه نباشند با اضافه کردن صفر در انتهای سمت چپ عدد باینری تعداد ارقام آن را مضربی از سه می کنیم.
اعداد هگزادسیمال
اعداد هگزادسیمال، اعدادی در مبنای شانزده می باشند. اعداد در مبنای شانزده دارای 16 رقم معنی دارای 0,1,…9,A,B,C,D,E,F می باشند. برای تبدیل اعداد دسیمال به هگزادسیمال می توان از روش تقسیمات متوالی بر شانزده مشابه قسمت های قبل استفاده کرد.
تبدیل اعداد باینری به هگزادسیمال
فرض کنید می خواهیم عدد 101110000 در مبنای دو را به معادل آن در مبنای هگزادسیمال تبدیل کنیم. برای این منظور ارقام را از سمت راست چهار تا چهار تا جدا میکنیم و به جای هر چهارتایی رقم معنیدار آن در مبنای شانزده را میگذاریم. برای این منظور از جدول زیر استفاده میکنیم:
در نتیجه داریم:
توجه کنید از آنجایی که عدد 101110000 مضربی از چهار نمیباشد، در انتهای سمت چپ سه عدد صفر اضافه کرده ایم.
4 Comments
با سلام و تشکرفراوان از مطلب آموزندتون
فقط یه سوال داشتم از خدمتتون
و اونم اینکه ==@> نحوه خواندن اعداد در مبناهای ۸ و ۱۶ به چه صورت هستش ؟
ینی در مبنای هشت
۰ – ۱ – ۲ – ۳ – ۴ – ۵ – ۶ – ۷ – ؟؟؟
بعدش چه عددی قرار میگیره ؟
در مبنای ۱۶ هم همینطور بعد از عدد F چه عددی قرار میگیره ؟؟
لطفاً جواب رو ایمیل کنید و در همینجا هم جهت آگاهی سایر عزیزان قرار بدهید … ممنون
سلام
تعداد ارقام معنی دار در هر مبنا برابر با همون مبنا هست. به عنوان مثال در مبنای ۲ یا باینری فقط دو رقم معنی دار ۰ و ۱ داریم و اگه هر عددی در مبنای دیگه ای رو بخوایم به مبنای ۲ تبدیل کنیم فقط و فقط از همین دو رقم معنی دار باید استفاده کنیم. مثلا عدد ۲۰ در مبنای دو به صورت زیر قابل تبدیل است:
۲۰ = ۱۶ + ۴ = ۱۰۱۰۰
به طور مشابه در مبنای ۸ ما هشت رقم معنی دار داریم:۰ ، ۱ ، ۲ ، ۳ ، ۴ ، ۵ ، ۶ ، ۷ و اگه قرار باشه عددی از مبنای دیگه ای رو به مبنای ۸ تبدیل کنیم فقط و فقط باید از همین ۸ رقم معنی دار استفاده کنیم. به عنوان مثال معادل عدد ۲۰ دسیمال(مبنای ۱۰) در مبنای ۸ میشه ۲۴:
۲۰ = ۲*۸ + ۴ = ۲۴
همین طور در مبنای ۱۶ هم فقط ۱۵ تا رقم معنی دار داریم: ۰ ، ۱ ، … F . مثلا معادل عدد ۲۰ دسیمال در مبنای ۱۶ میشه ۱۴:
۲۰ = ۱*۱۶ + ۴ = ۱۴
اینکه سوال کردین بعد از عدد F چه عددی قرار میگیره. در واقع F آخرین رقم معنی دار در مبنای ۱۶ هست. و زمانی که بخوایم اعدد بزرگی رو تبدیل کنیم ظاهر میشه. مثلا معادل ۵۰۰ دسیمال در مبنای ۱۶ میشه ۱F4:
۵۰۰ = ۱*۲۵۶ + F*16 + 4
همون طور که در مبنای ۱۰ یا دسیمال به عنوان مثال میگفتم ۱۲۴ تشکیل شده از ۱ بسته ۱۰۰تایی(۲*۱۰) ، ۲ بسته ۱۰ تایی(۱*۱۰) و ۴ تا بسته یکی. همین بیان در سایر مبناها درسته. مثلا همین عدد ۵۰۰ دسیمال که معادلش در مبنای ۱۶ شذ ۱F4 به این معناست که عدد ۱F4 شامل ۱ بسته ۲۵۶ تایی(۲*۱۶)، F بسته ۱۶ تایی(۱*۱۶) و ۴ تا بسته یکی هست.
تنها جایی که این مبحث رو خیلی ساده توضیح داد.ممنونم
خیلی عالی بود