هگزادسیمال یا همان هگز (Hex) چیست؟
اگر اهل مباحث کامپیوتری باشید، حتماً نام هگز (Hex) یا هگزادسیمال را شنیده اید. هگزادسیمال که به اختصار هگز نیز نامیده میشود، یکی از سیستمهای عدد نویسی است که بر مبنای ۱۶ بوده و در ریاضیات و کامپیوتر کاربردهای فراوانی دارد.
هگز یا هگزادسیمال چیست؟
هگزادسیمال (Hexadecimal) که به اختصار هگز (Hex) نیز نامیده میشود، یک سامانه عدد نویسی است که بر مبنای ۱۶ بوده و برای نمایش دادن آن از ۱۶ سمبل استفاده میشود. اعداد ۰ تا ۹ به صورت عادی (یعنی همان اعداد ۰ تا ۹) و اعداد ۱۰ تا ۱۵ را با حروف A (ده) و B (یازده) و C (دوازده) و D (سیزده) و E (چهارده) و F (پانزده) نشان میدهند.
برخی از کاربران در ابتدا در ۱۶هی بودن این سیستم شک میکنند، چون ما از عدد ۰ استفاده میکنیم تا ۱۵، درواقع ما ۱۶ عدد برای انتخاب کردن خواهیم داشت مثل ۱۰هی بودن اعداد عادی که از ۰ شروع میشوند تا ۹.
اکثر اعدادی که روزانه از آنها استفاده میکنیم، بر پایه ۱۰ هستند یعنی ۱۰ کاراکتر برای نشان دادنشان کافی است، از اعداد ۰ تا ۹ اسم این سیستم دسیمال است. ولی همانطور که گفته شد، در سیستم عددنویسی هگز، ما از ۱۶ کاراکتر استفاده میکنیم.
نکته: هگز یا همان هگزادسیمال نباید با دسیمال اشتباه گرفته شود. این دو سیستم کاملاً جدا هستند. دسیمال به معنای ۱۰ و هگز به معنای ۶ است در نتیجه هگزادسیمال میشه ۱۶.
سیستم هگزادسیمال در رشتههای کامپیوتر و ریاضی کاربردهای فراوانی دارد. از برنامه نویسی سطح پایین گرفته تا کد رنگ صفحات HTML تا دیباگ کردن برنامهها. اما نحوه نمایش هگز در سیستمهای مختلف متفاوت است.
مثلاً در سیستمهای یونیکس و شبه یونیکس (و بسیاری از سیستمهای دیگر) دو کاراکتر ۰x در اول مقدار هگز نشان داده میشود (مثلاً ۰xAA یا ۰x2F4) در برخی از سیستمها و صفحات HTML کدهای رنگ بصورت ترکیبی از کاراکترهای هگز نشان داده میشود که در اول آنها # قرار میگیرد (مثلاً #FFFFFF – # قبل از FFFFFF است). در زبان اسمبلی پردازندههای اینتل، پس از مقادیر هگز یا h یا H قرار داده میشود (مثلاً ۲h یا A6H) و …
مطالب مرتبط:
چرا از هگزادسیمال استفاده میکنیم؟
خب شاید سوال کنید که چرا به سیستم هگزادسیمال نیاز داریم وقتی که میتوانیم همه اعداد را با سیستم دسیمال (همون سیستم ۰-۹ خودمون) بنویسیم؟ یا چرا از عددنویسیهایی مثل اوکتل استفاده نکنیم؟
پاسخش ساده است: ما چون ۱۰ انگشت داریم، به محاسبه اعداد بر مبنای ۱۰ عادت کرده ایم ولی کامپیوتر فقط میتواند محاسبات بر مبنای ۲ را انجام دهد یعنی صفر و یک!
درک کردن و نوشتن اعداد باینری صفر و یک برای ما مشکل است و از طرفی برای کامپیوتر تبدیل اعدادی برمبنای ۲ به مبنای ۱۰ و برعکس نیز مشکل است. به همین دلیل سیستم عددنویسی بر مبنای ۱۶ به دنیای کامپیوترها وارد شد تا اعداد باینری را بتوانیم با استفاده از ۱۶ کاراکتر نشان دهیم. درک کردن اعداد برمبنای ۱۶ بســـــیار ساده تر از اعداد بر مبنای ۲ است.
اما چرا مبنای ۱۶؟ کامپیوتر به راحتی میتواند مبنای توانهای ۲ (یعنی ۴ و ۸ و ۱۶ و …) را به مبنای ۲ تغییر دهد و برعکس. چون هر عدد در سیستم هگزادسیمال نماینده ۴ بیت است (چون ۲ به توان ۴ میشود ۱۶، یعنی ۱۶ حالت مختلف برای یک گروه ۴ بیتی).
مشکلی که سیستم عدد نویسی اوکتال (Octal) که در کامپیوترهای قدیمی استفاده میشد در مقایسه با هگز دارد این است که در اوکتال ما برای هر یک از اعداد به ۳ بیت نیاز داشتیم. با در نظر گرفتم این که کامپیوترهای مدرن تر از حالت ۸ بیتی (Octet) یعنی یک بایت استفاده میکنند (مثل پردازندههای ۱۶، ۳۲ و ۶۴ بیتی)، اوکتال را نمیتوان به صورت بایت (گروه ۸ بیتی) تبدیل کرد و در این سیستمها کاملاً غیربهینه خواهد بود.
از این رو از عددنویسی هگزادسیمال استفاده میکنیم که در مقابل سایر سیستمهای عددنویسی مثل اوکتال (با اوکتت اشتباه گرفته نشود) بسیار بهینه تر و از طرفی قابل فهم تر است.
توضیحات شما عالی بود.من میخواستم بدونم چرا تو هاردای اکسترنال از hex استفاده میشه.آیا تو سرعت خوندن و نوشتن اطلاعات هم تاثیر داره یا نه؟
سلام. در کجای هارد اکسترنال از هگز استفاده میشه؟ هگز فقط نحوه نمایشه و تو سرعت و … تاثیری نداره.