اعداد هگزادسیمال – به زبان ساده (+ دانلود فیلم آموزش گام به گام)
برای مطالعهی بخشهای اول و دوم مطلب میتوانید از لینک ۱ و لینک ۲ استفاده کنید؛ یکی از بزرگترین ضعفهای اعداد باینری، طولانی بودن بیش از حد رشتهی باینری مربوط به اعداد دهدهی بزرگ است. در سیستمهای دیجیتالی عظیم مثل کامپیوترها، استفاده از اعداد باینری 8، 16 و حتی 32 رقمی بسیار رایج است؛ اما خواندن و نوشتن تعداد زیادی عدد باینری 16 یا 32 بیتی، بدون پیش آمدن هیچ خطایی عملاً غیرممکن خواهد بود. یکی از روشهای مرسوم برای غلبه بر این مشکل، دستهبندی اعداد باینری در گروهها یا مجموعههای چهار بیتی و در نهایت استفاده از اعداد هگزادسیمال (Hexadecimal) است.
فیلم آموزشی دستگاه اعداد هگزادسیمال
سیستم شمارهگذاری هگزادسیمال و یا به اختصار «هگز» (Hex)، همان دستگاه اعداد مبنای 16 است. این سیستم شمارهگذاری به علت فرمت تقریباً فشردهای که دارد، گزینهی بسیار مناسبی برای نمایش رشتههای باینری طولانی به شمار میرود. همچنین درک آن نسبت به رشتههای باینری متشکل از صفر و یکها آسانتر است.
از آنجایی که اعداد هگزادسیمال اعدادی در مبنای 16 هستند، برای نمایش این اعداد میتوان از 16 رقم متفاوت و از اعداد 0 تا 15 استفاده کرد. واضح است که اعداد دهدهی 10، 11، 12، 13، 14 و 15 دو رقم دارند. این موضوع در حالت عادی مشکلی ایجاد نمیکند، اما به طور مثال اگر عدد 10 را در مبنای 16 بنویسیم، نمیتوان تشخیص داد که این عدد 10 دهدهی است یا 2 باینری. برای حل این مشکل مقادیر ده، یازده، دوازده، سیزده، چهارده و پانزده را به ترتیب با حروف بزرگ انگلیسی E، D، C، B، A و F نمایش میدهیم.
پس برای نمایش معادل اعداد باینری یا دهدهی در سیستم شمارهگذاری هگزادسیمال، از ارقام 0 تا 9 و حروف بزرگ A تا F استفاده میشود. همانند دستگاه اعداد باینری و دهدهی، در اعداد هگزادسیمال نیز سمت راستترین رقم، کم ارزشترین رقم است.
همانگونه که قبلاً اشاره شد، استفاده از رشتههای باینری طولانی بسیار دشوار است. اما با دستهبندی این اعداد باینری بزرگ به گروههای کوچکتر و با تعداد ارقام مساوی، فهم و نوشتن آنها راحتتر خواهد بود. به عنوان مثال، کار کردن با 11112 1100 0101 1101 به جای 11010101110011112 بسیار آسانتر است.
همانند دستگاه اعداد دهدهی که برای درک آسانتر اعداد چند میلیونی و یا چند میلیاردی، از سمت راست ارقام را سه تا سه تا جدا کرده و گروهبندی میکنند، در سیستمهای دیجیتالی نیز از روش مشابهی استفاده میکنیم.
اعداد هگزادسیمال سیستم پیچیدهتری نسبت به اعداد باینری یا دهدهی داشته و در کامپیوترها و آدرسدهی مکانهای حافظه پرکاربردترند. با تقسیم یک عدد باینری به گروههای 4 بیتی، هر دستهی 4 بیتی میتواند مقداری بین 0000 باینری (صفر) تا 1111 باینری (پانزده) داشته باشد که جمعاٌ 16 حالت مختلف را ایجاد میکند.
از اولین بخش آموزشهای مربوط به اعداد باینری به یاد داریم که هر دستهی 4 بیتی یک «نیبل» نامیده میشود. همچنین میدانیم به منظور تولید یک عدد هگزادسیمال به حداقل 4 بیت نیازمندیم، لذا هر رقم هگز را میتوان به عنوان یک نیبل و یا نصف بایت فرض کرد. به همین شکل برای تولید یک بایت کامل به دو رقم هگزادسیمال از 00 تا FF نیاز است.
به دلیل اینکه عدد 16 در دستگاه دهدهی توان چهارم عدد 2 است (به عبارتی 24)، ارتباط مستقیمی بین عدد 2 و 16 وجود دارد که در نتیجه یک رقم هگز ارزشی معادل چهار رقم باینری دارد. در فرمول کلی نمایش دستگاههای اعداد، مقدار q مربوط به دستگاه اعداد هگزادسیمال 16 است.
به علت وجود این رابطه، میتوان چهار رقم باینری را در قالب یک رقم هگزادسیمال نشان داد. این موضوع تبدیل اعداد باینری و هگزادسیمال به یکدیگر را بسیار آسان کرده و نمایش اعداد باینری بزرگ با تعداد ارقام بسیار کمتر و به صورت هگزادسیمال را ممکن میکند.
جدول زیر معادل باینری و هگزادسیمال اعداد دهدهی 0 تا 17 را نشان میدهد. اعداد دهدهی 0 تا 9 در دستگاه هگزادسیمال نیز به همان صورت نوشته میشوند. اما معادل هگزادسیمال اعداد دهدهی 10 تا 15 حروف بزرگ A تا F است.
اعداد هگزادسیمال
عدد هگزادسیمال | عدد باینری 4 بیتی | عدد دهدهی |
0 | 0000 | 0 |
1 | 0001 | 1 |
2 | 0010 | 2 |
3 | 0011 | 3 |
4 | 0100 | 4 |
5 | 0101 | 5 |
6 | 0110 | 6 |
7 | 0111 | 7 |
8 | 1000 | 8 |
9 | 1001 | 9 |
A | 1010 | 10 |
B | 1011 | 11 |
C | 1100 | 12 |
D | 1101 | 13 |
E | 1110 | 14 |
F | 1111 | 15 |
(1+0) 10 | 0001 0000 | 16 |
(1+1) 11 | 0001 0001 | 17 |
... |
به عنوان مثال با استفاده از جدول بالا، معادل هگزادسیمال عدد باینری 11112 1100 0101 1101 به صورت D5CF خواهد بود و مسلماً خواندن و نوشتن آن از عدد قبلی که رشتهای طولانی از 0 و 1 ها بود راحتتر است. همانگونه که میبینیم با به کار بردن دستگاه اعداد هگزادسیمال، تعداد ارقام بسیار کمتر شده و احتمال رخ دادن خطا نیز کاهش مییابد.
مهمترین ویژگی دستگاه اعداد هگزادسیمال، داشتن 16 رقم شمارشی متفاوت از 0 تا F است. در اینگونه اعداد هر رقم وزن مخصوص به خود را دارد که با شروع از کم ارزشترین رقم (LSB) در سمت راست عدد، وزن هر رقم 16 برابر رقم قبلی است. به منظور متمایز کردن اعداد هگزادسیمال از اعداد دهدهی، قبل از این اعداد نماد «#» (هَش) یا «$» (علامت دلار) قرار میدهیم؛ مثلاً D5CF# یا D5CF$. البته از آنجایی که اعداد هگزادسیمال مبنای 16 دارند، با نوشتن زیرنویس 16 به صورت D5CF16 نیز میتوان آنها را نشان داد.
شمارش بهوسیلهی اعداد هگزادسیمال
تا بدین جای کار میدانیم چگونه چهار رقم باینری را به یک عدد هگزادسیمال تبدیل کنیم. اما اگر بیشتر از چهار رقم باینری داشتیم چه باید کرد؟ شمارش هگزادسیمال بعد از حرف آخر F چگونه است؟ بدیهیترین پاسخ، شروع دوباره با یک دستهی چهار بیتی دیگر مانند زیر است:
0…to…9, A, B, C, D, E, F, 10… to …19, 1A, 1B, 1C, 1D, 1E, 1F, 20, 21, ….
نمایش اعداد هگزادسیمال
LSB | عدد هگزادسیمال | MSB | ||||||
160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 |
1 | 16 | 256 | 4k | 65k | 1M | 16M | 2.6G | 4.3G |
اگر تعداد ارقام عدد باینری 4، 8، 12، 16 و در حالت کلی مضرب صحیحی از چهار باشد، تبدیل باینری و یا معادل دهدهی آن به هگزادسیمال بسیار راحت خواهد بود. اما اگر تعداد ارقام باینری غیر از این باشد، میتوانیم با افزودن تعداد مناسبی صفر در سمت چپ پر ارزشترین بیت (MSB)، تعداد ارقام را به اندازهی دلخواه افزایش دهیم.
به عنوان مثال عدد باینری 110010110110012 چهارده رقم دارد. حال میخواهیم معادل هگزادسیمال این عدد را بیابیم. اما تعداد ارقام باینری برای نمایش در قالب سه رقم هگزادسیمال زیاد است و البته برای نمایش در قالب چهار رقم هگزادسیمال نیز کم است. برای حل این مشکل، در سمت چپ MSB دو تا صفر اضافه میکنیم تا یک دستهی چهاربیتی دیگر به وجود بیاید. افزودن این صفرها تغییری در مقدار عدد باینری ایجاد نمیکند اما از طرف دیگر یافتن معادل هگزادسیمال عدد را آسانتر میکند.
افزودن صفرهای اضافی به عدد باینری
1001 | 1101 | 0010 | 0011 | عدد باینری |
9 | D | 2 | 3 | عدد هگزادسیمال |
بزرگترین مزیت اعداد هگزادسیمال، فشردگی آنها به دلیل استفاده از مبنای 16 در شمارهگذاری است. لذا معمولاً تعداد ارقام استفاده شده در یک عدد هگزادسیمال کمتر از تعداد ارقام معادل باینری یا دهدهی همان عدد است. همچنین، تبدیل اعداد باینری و هگزادسیمال به یکدیگر بسیار راحت است.
مثال شمارهی 1
عدد باینری 10102 1110 را به معادل هگزادسیمال آن تبدیل کنید.
عدد باینری = 111010102 | |||
از سمت راست بیتها را چهارتا چهارتا جدا کنید. | |||
1010 | 1110 | = | |
معادل دهدهی هر یک از گروههای چهار بیتی را حساب کنید: | |||
(دهدهی) | 10 | 14 | = |
با استفاده از جدول قبل معادل هگزادسیمال اعداد را پیدا کنید: | |||
(هگزادسیمال) | A | E | = |
و در آخر، معادل هگزادسیمال عدد باینری برابر است با:
#EA16 |
مثال شمارهی 2
معادل باینری و دهدهی عدد هگزادسیمال 3FA716 را بیابید. مبنای هر عدد را نیز به دقت مشخص کنید.
#3FA716
= 0011 1111 1010 01112
= (8192 + 4096 + 2048 + 1024 + 512 + 256 + 128 + 32 + 4 + 2 + 1)
= 16,29510
معادل باینری عدد دهدهی 16295 به صورت زیر است:
0011 1111 1010 01112
خلاصه
در سیستمهای دیجیتالی و کامپیوتری برای افزایش خوانایی و تبدیل رشتههای بزرگی از اعداد باینری به دستههای چهار رقمی، از سیستم شمارهگذاری هگزادسیمال یا هگز استفاده میشود. لغت لاتین Hexadecimal به معنای شانزده است و علت این نامگذاری، استفاده از 16 رقم مختلف 0 تا 9 و A تا F در این سیستم شمارهگذاری است.
برای تبدیل اعداد باینری به اعداد هگزادسیمال، ابتدا باید عدد باینری را در گروههای چهار رقمی دستهبندی کنیم. این گروهها میتوانند مقداری بین 010 (00002) تا 1510 (11112) داشته باشند که همان معادل هگز 0 تا F است.
در بخش بعدی از مجموعه آموزشهای مربوط به سیستمهای باینری، یکی دیگر از سیستمهای شمارهگذاری دیجیتال به نام اعداد اُکتال یا مبنای 8 را معرفی کرده و نحوهی تبدیل اعداد باینری به اُکتال و بالعکس را بررسی میکنیم.
اگر مطالب بالا برای شما مفید بوده است، شاید از این آموزشها نیز استفاده ببرید.
- مجموعه آموزش های مهندسی برق
- آموزش مبانی الکترونیک – مفاهیم تئوریک به همراه شبیه سازی عملی و کاربردی
- آموزش مبانی برنامه نویسی (الگوریتم و فلوچارت) با رویکرد حل مسأله
^^
مطالب خیلی خوب بود و ساده بیان شده متشکرم
99001818378100 درود بر شما ،ایا این عدد باینری هست؟؟ و اگر هست معادل هگزادسیمال این عدد چیه؟؟
بسیار مفید و کاربردی تشکر از تولید این محتوای زیباتون
واقعا درود و خسته نباشید عالی بود
ممنون از توضیحاتتون