در مبنای 10، ده نماد جدا از هم یعنی 0 و 1 و 2 تا 9 برای تولید اعداد داریم. اما در سیستم اعداد دودویی دو نماد 0 و 1 وجود دارد. در این آموزش تبدیل مبنا دودویی را یاد گرفته و پنج مثال از تبدیلهای عدد دودویی میزنیم.
عملیات ریاضی روی اعداد باینری مشابه محاسبات ریاضیای است که همگی در دوران مدرسه یاد گرفتهایم. فقط باید مبنا و اصول سیستم دودویی را متوجه شویم تا به راحتی هر محاسبات ریاضی را انجام دهیم.
فهرست محتوای آموزش
سیستم عدد دودویی
عدد دودویی یا عدد باینری (binary) اعداد پراستفادهای در دنیای دیجیتالی امروز هستند. کامپیوترها و دستگاههای دیجیتالی در مبنای دو کار میکنند.
در عدد دودویی دو علامت صفر و یک داریم. همه اعداد را با همین دو علامت نشان میدهیم. اما چطوری؟ هدف این آموزش دقیقاً همین است! 🙂 بیایید ابتدا ساختار سیستم دودویی (عدد در مبنای 2) را با هم بررسی کنیم.
اعداد عادی که همیشه با آنها سروکار داریم در مبنای 10 هستند. اولین رقم سمت راست یک عدد مبنای ده، دارای ارزش یک است، دومین رقم ارزش 102 و همینطور تا آخر.
مثلاً در جدول زیر، عدد پانزده هزار و دویست و سه با ارزش هر رقم نمایش داده شده:
100 | 101 | 102 | 103 | 104 |
3 | 0 | 2 | 5 | 1 |
عدد دودویی هم به همین شکل است، با این تفاوت که پایه ارزشش 2 است. یعنی ارزش اولین رقم 20، دومین رقم 21 و همینطور تا انتهاست.
اگر مایلید تاریخچه شکلگیری کدهای دودویی را بخوانید، این صفحه از ویکیپدیا جای خوبی است!
تبدیل از دهدهی به دودویی
برای تبدیل عدد از مبنای 10 به مبنای 2 روشهای مختلفی وجود دارد؛ اما پایه آنها شبیه به هم است.
یکی از راههای معمول و ساده برای تبدیل دسیمال به باینری (دهدهی به دودویی) انجام تقسیمهای متوالی بر 2 است.
در این تقسیمها، عدد مورد نظر (در مبنای 10) بر عدد 2 تقسیم میشود. این تقسیم یک باقیمانده (0 یا 1) و یک خارج قسمت دارد. تا زمانی که خارج قسمت معادل صفر شود، تقسیمها بر 2 را انجام میدهیم.
وقتی خارج قسمت صفر شد، باقیماندههای تقسیمها را از انتها به ابتدا به دنبال هم مینویسیم تا عدد دودویی حاصل شود.
مثال: فرض کنید میخواهیم عدد 25 در مبنای 10 را به مبنای دو تبدیل کنیم. برای این کار، مشابه مراحل تصویر زیر عمل میکنیم:
بهطور سادهتر، عملیات تصویر بالا در محاسبات باکس زیر انجام شده است. اولین عدد بعد از علامت مساوی، خارج قسمت و دومین عدد، باقیمانده تقسیم است.
25 ÷ 2 = 12 1 12 ÷ 2 = 6 0 6 ÷ 2 = 3 0 3 ÷ 2 = 1 1 1 ÷ 2 = 0 1
حالا باقیماندهها را از انتها به ابتدا مینویسم. عدد 11001
در مبنای دو نتیجه تبدیل دهدهی به دودویی خواهد بود.
تبدیل عدد اعشاری به مبنای 2
برای تبدیل عدد اعشاری از مبنای 10 به مبنای 2، از ضرب متوالی عدد اعشاری در شمارهی مبنای جدید (یعنی 2) استفاده میکنیم.
عدد اعشاری دهدهی را در 2 ضرب میکنیم. نتیجه، یک رقم صحیح و یک مقدار اعشاری خواهد داشت. تا زمانی که بخش اعشاری معادل صفر نشده، بخش اعشاری را در 2 ضرب میکنیم. جزء صحیح هر کدام از ضربها، به ترتیب اعداد اعشاری مبنای 2 خواهند بود. (از چپ به راست در عدد اعشاری)
برای مثال، فرض کنید میخواهیم عدد اعشاری 0.875 را از مبنای 10 به مبنای 2 ببریم. سه محاسبه زیر را انجام میدهیم:
0.875 × 2 = 1.750 0.750 × 2 = 1.500 0.500 × 2 = 1.000
در نتیجه داریم: 2(0.111
) = 10(0.875
)
هنگام تبدیل مبنای بعضی اعداد، ممکن است هیچ وقت به بخش اعشاری صفر نرسیم! در اینصورت میگوییم این عدد دودویی مختوم نیست و بخش اعشاری تقریبی دارد.
نکته: اگر عدد شامل بخش صحیح و اعشاری باشد، باید هر بخش را جداگانه به سیستم دودویی (مبنای دو) تبدیل کنید.
تبدیل مبنای دو به مبنای 10
در بخش اول آموزش، فهمیدیم که هر جایگاه در عدد باینری دارای یک ارزش است. این ارزش در قسمت صحیح از سمت راست به چپ بیشتر میشود. از همین مسئله کمک میگیریم تا تبدیل عدد دودویی به دهدهی را انجام دهیم.
فرض کنید میخواهیم 110012
را تبدیل کنیم. در باکس زیر، ردیف اول، ارزش هر جایگاه هست. ردیف سوم حاصل ضرب مقدار در ارزش است.
16 8 4 2 1 1 1 0 0 1 16 + 8 + 0 + 0 + 1 = 25
در نهایت، جمع این مقادیر عدد ما در مبنای 10 خواهد بود؛ یعنی 2510
.
برای اینکه این محاسبه را به صورت تصویری هم داشته باشیم، تبدیل عدد 101102
در مبنای دو را در عکس زیر داریم:
با دانستن وزن هر مکان بیت دودویی، میتوانیم بدون انجام تقسیم و به صورت حفظی یک عدد دهدهی را به دودویی تبدیل کنیم. 🙂
تبدیل عدد اعشاری مبنای 2 به ده
برای تبدیل عدد اعشاری از مبنای 2 هم بهطور مشابه عمل میکنیم. اما توجه کنید که ارزش جایگاه در بخش اعشاری اعداد سیستم دودویی، با توان منفی است. یعنی اولین رقم بعد از اعشار معادل 2 به توان 1- ارزش داشته و رقم بعدی 2-2
.
در محاسبه زیر، عدد اعشاری 0.1011 در مبنای 2 را به مبنای 10 تبدیل کردهام:
(0.1011)2 = [1 × (2-1)] + [1 × (2-3)] + [1 × (2-4)] = (0.6875)10
در این آموزش سعی کردم علاوه بر معرفی ساختار اعداد در سیستم دودویی، نحوه انجام محاسبات تبدیل مبنای 2 را آموزش دهم. نمایش اعداد در مبنای دو ممکن است به روشهای مختلفی انجام شود؛ ما سیستمهای مختلفی برای ارزشگذاری بیتهای عددی اعداد دودویی (باینری) داریم. در آموزش کدهای عددی چند نمونه پر استفاده از دنیای دیجیتال و مباحث محاسباتی را بررسی کردهایم.
مبناهای مختلفی در سیستم اعداد وجود دارد که هر کدام در جای خود کاربرد دارند. در آموزش مبناهای متداول در مورد چند مورد از پرکاربردترینها صحبت کردهام.
یادتان باشد که نحوه محاسبات تبدیل مبنا در هر مبنای دیگر، دقیقاً به همین شکل است! پس تبریک میگم، شما تبدیل مبنا را به طور کامل یاد گرفتید. 😉
اگر میخواهید خودتان را بسنجید، این دو سؤال را برای خودتان حل کنید:
- عدد 14 در مبنای دو به چیست؟
- عدد 11101 در مبنای دو معادل چه عددی در مبنای 10 است؟
این آموزش برای همیشه رایگانه! میتونید با اشتراکگذاری لینک این صفحه از ما حمایت کنید یا با خرید یه فنجون نوشیدنی بهمون انرژی بدید!
میخوام یه نوشیدنی مهمونتون کنم
عالی توضیح داده شده بود
خوشحالیم که براتون مفید بوده زهرای عزیز
خیلی عالی و کامل بود
ممنونم از شما
درود
با تشکر و خداقوت بابت آموزش بی نظیر شما
خوشحالیم که براتون مفید بوده محمد عزیز
عالی بود . ممنون
دمت گرم
عالی توضیح دادید
درودخدابرشما
بهصورت خلاصه و کامل بیان شده بود.
از این بهتر نمیشد
خوشحالیم که براتون مفید بوده. ممنون برای انرژی خوبی که بهمون دادید
سلام ممنون از توضیحاتتون ولی یه سوال داشتم حالا اگه یه عددی رو بخوایم مستقیم به مبنای دو ببریم چی؟
سلام
منظورتون از مستقیم چیه؟! با انجام مراحل تقسیم میتونید به پاسخ برسید. ذهنی هم میشه ولی روشش همینه.
متشکر و ممنون
سلام خیلی عالی توضیح دادید احسنت برشما
سلام
خوشحالیم که براتون مفید بوده. ممنون بابت انرژی خوبی که بهمون میدید.
با سلام و خداقوت
ممنون از آموزش های بسیار روان و کامل شما
سلام خسته نباشیدببخشید بزرگترین عددی را که می توان درمتغیر2بایتی ذخیرومحاسبه کردچیست؟باتشکرازشما
سلام
مجموعاً 65,535 عدد رو میشه نمایش داد. اگه فقط اعداد مثبت رو در نظر بگیرید، بزرگترینش میشه همین 65535 و اگه منفیها هم در نظر گرفته بشن نصف این تعداد خواهد بود.
جواب این سوال چی میشه الگوریتمی را بنویسید که5 عدد صحیح را از ورودی بگیرد ومجموع میانگین را د رخروجی نمایش بدهند؟ باتشکر
فلوچارت میخواید؟ دوره رایگان آموزش برنامه نویسی شما رو با ساختارها و کمی تفکر برنامه نویسی مقدماتی آشنا میکنه. حتماً ببینیدش.
سلام خسته نباشیدکجامیتوانم دوره رایگان آموزش برنامه نویسی مقدماتی رامشاهده کنم و اینکه سوالات مربوط به برنامه نویسی رابپرسم تشکر
توی پیام قبلی لینک شده یا میتونید توی سایت جستجوش کنید.
باسلاموخسته نباشید خدمت شمابزرگواران زحمت کش کمال تشکربابت راهنمای هاشما
سلام خسته نباشیدچطورمی توانم از تجربیات و راهنمایی های مجموعه شما استفاده وازمشورات استفاده کنم تشکر
سلام
اگر سؤالی در مورد آموزشها دارید، در بخش دیدگاهها مطرح کنید ما تلاشمون رو میکنیم راهنماییتون کنیم.
اگر سؤال تخصصی را راهنمایی مسیر میخواید میتونید از خدمات بخش کالج استفاده کنید یا از بخش تماس با ما در ارتباط باشید تا بتونیم موردتون رو بررسی و اگه بتونیم روند همکاری رو اعلام کنیم.
ببخشید دهدهی ۲۵۰/۵درمبنای۳ چی میشه ممنون میشم اگه جواب بدین
مشابه همین آموزش میتونید عمل کنید ولی به جای تقسیمهای متوالی به ۲، باید بر ۳ تقسیم کنید.
معادل دودویی عدد۱۴۳ چی میشه وچطور حساب میشه؟
معمولترین روشش اینه که مشابه آموزش که عدد ۲۵ رو بارها تقسیم بر ۲ کردیم تا برسیم به نتیجه، این عدد رو هم تبدیل کنید.
دمت گرم
شیر مادر حلالت
نون پدرت گوشت بشه بچسبه
واقعا عالی بود
خوشحالیم که براتون کاربردی بوده سام عزیز. ممنون بابت لطفت
درود و وقت بخیر ایشالا موفق و پیروز باشید، در قسمت تقسیم اعداد اعشاری مبنای دو به ده عدد داخل کادر تصویر اشتباه نوشته شده و با جواب نهایی و البته با صورت سوال تداخل دارد.
سلام
ممنون بابت تذکرتون. اصلاح شد.
ممنونم واقعا عالی توضیح دادید
خوشحالیم که آموزشمون برات کاربردی بوده امید عزیز
ببخشید الان عدد 14درمبنای 2 چی میشه اخه این مبنای های 2رو زیاد بلد نیستم
درود
طبق آموزش پیش میفتید دیگه! تازه ماشین حساب برای محاسبه این عدد ساده هم بود! 😉
میشه 1110
آموزنده بود، دست تان درد نکند.
خوشحالیم که براتون آموزنده بوده و اینکه همراهمونید 🙂
موفق باشی
عدد 13.75 در مبنای 10 میشه 1101.11 در مبنای 2؟
سؤال سخت نپرسین دیگه! 😉 آره کاملاً صحیحه.
خیلی سپاس گذارم بخواطر سایت خوبتون
سلام وقت شما بخیر اگر اعشار در مبنای 8 بود و خواستیم آن را به مبنای 10 ببریم به چه صورت خواهد بود.
مثلا (0/07)
سلام
ارزش هر رقم بعد از اعشار مبنا به توان منفی جایگاهش هست.
مثلاً ارزش اولین رقم اعشاری معادل 8 به توان
-1
هست، الی آخر.سلام . ممنون بابت آموزش بسیار عالی و روانتون .
به دلیل فارسی بودن اعداد متنی که نوشتید ، طریقه ی خوندن و انجام عملیات روی اعداد ، برعکس شیوه ی صحیح عملیات خوانده میشند . لطف بفرمایید برای بهتر دیده شدن و آموزش مطلب ، اعداد متن را انگلیسی کنید یا دایرکشن تگ متن را روی rtl قرار بدید .
باز هم ممنون بابت مطالب خوبتون .
بهترین ها رو آرزو دارم براتون (*)-
سلام بهنود عزیز
ممنون بابت پیشنهاد و اطلاعتون. بله، درسته.
به خاطر طراحی جدید سایت، آموزشهای قدیمی بعضاً ساختار نامناسبی گرفتند.
این آموزش در لیست بهروزرسانی مجموعه قراره داره و تا ماه آینده علاوه بر اصلاحات نمایشی، ویرایش محتوایی هم خواهد داشت.
متشکرم از مطالب جامعتون
ان شاالله همیشه موفق باشید.
خوشحالم که براتون مفید بوده. همچنین شما.