• کد هگزادسیمال آموزش مصور گرافیک دیجیتال

    سیستم اعداد هگزادسیمال، محبوب ترین وسیله برای نمادگذاری فشرده اعداد باینری است. به طور گسترده ای در توسعه و طراحی فناوری دیجیتال استفاده می شود.

    همانطور که از نام آن پیداست، پایه این سیستم عدد شانزده است. 16 یا به صورت هگزادسیمال 10 16 . برای جلوگیری از سردرگمی، هنگام نوشتن اعداد در سیستم های اعدادی غیر از اعشار، پایه سیستم اعداد را در پایین سمت راست نماد اصلی عدد نشان می دهیم. از آنجایی که پایه سیستم عدد شانزده است، برای نشان دادن اعداد به شانزده رقم نیاز داریم. ده رقم اول از سیستم اعشاری آشنا برای ما گرفته شده است (0،1،..،8،9) و شش حرف دیگر از الفبای لاتین اضافه شده است (a,b,c,d,e,f). به عنوان مثال، در عدد هگزادسیمال 3f7c2، حروف "f" و "c" ارقام هگزا دسیمال هستند.

    شمارش در هگزادسیمال مشابه شمارش اعشاری است. بیایید سعی کنیم اعداد را با ساختن آنها از شانزده رقم موجود بشماریم و بنویسیم:

    صفر - 0 ;
    یکی - 1 ;
    دو - 2 ;
    ...
    و غیره…
    ...
    هشت - 8 ;
    نه - 9 ;
    ده - آ;
    یازده - ب;
    دوازده - ج;
    سیزده - د;
    چهارده - ه;
    پانزده - f;

    کار بعدی چیه؟ همه اعداد از بین رفته اند. چگونه عدد شانزده را نشان دهیم؟ بیایید همان کاری را که در سیستم اعشاری انجام دادیم انجام دهیم. در آنجا مفهوم ده را مطرح کردیم، اما در اینجا مفهوم «شانزده» را معرفی می کنیم و می گوییم شانزده یک «شانزده» و صفر یک است. و این را می توان از قبل نوشت - "10 16".

    بنابراین، شانزده - 10 16 (یک "شانزده"، صفر یک)
    هفده - 11 16 (یک "شانزده"، یک واحد)
    ...
    و غیره…
    ...
    بیست و پنج - 19 16 (یک "شانزده"، نه واحد)
    بیست و شش - 1a 16 (یک "شانزده"، ده یک)
    بیست و هفت - 1b 16 (یک "شانزده"، یازده یک)
    ...
    و غیره…
    ...
    سی - 1e 16 (یک "شانزده"، چهارده یک)
    سی و یک - 1f 16 (یک "شانزده"، پانزده یک)
    سی و دو - 20 16 (دو "شانزده"، صفر یک)
    سی و سه - 21 16 (دو "شانزده"، یک واحد)
    ...
    و غیره…
    ...
    دویست و پنجاه و پنج - ff 16 (پانزده در "شانزده"، پانزده یک)

    دویست و پنجاه و شش - 100 16 (یک "دویست و پنجاه و شش"، صفر تا "شانزده"، صفر واحد)
    دویست و پنجاه و هفت - 101 16 (یک "دویست و پنجاه و شش"، صفر تا "شانزده"، یک واحد)
    دویست و پنجاه و هشت - 102 16 (یک "دویست و پنجاه و شش"، صفر تا "شانزده"، دو واحد)
    ...
    و غیره...
    ...

    هر زمان که مجموعه ارقام را برای نمایش عدد بعدی تمام کردیم، واحدهای بزرگتر حساب را وارد می کنیم (یعنی شمارش با "شانزده"، با "دویست و پنجاه و شش" و غیره) و عدد را با پسوند یک می نویسیم. رقم .

    عدد را در نظر بگیرید 3e2c 16 در سیستم اعداد هگزادسیمال نوشته شده است. درباره آن می توان گفت که شامل: سه در چهار هزار و نود و شش، «ه» (چهارده) در دویست و پنجاه و شش، دو در شانزده و «ج» (دوازده) واحد است. و می توانید ارزش آن را از طریق اعداد درج شده در آن به صورت زیر بدست آورید.

    3e2c 16 = 3 *4096+14 *256+2 *16+12 *1، از این پس علامت * (ستاره) به معنای ضرب است.

    اما سری اعداد 4096، 256، 16، 1 چیزی نیست جز توان های صحیح عدد شانزده (پایه سیستم اعداد) و بنابراین می توانیم بنویسیم:

    3e2c 16 = 3 *16 3 +14 *16 2 +2 *16 1 +12 *16 0

    به طور مشابه برای یک کسر هگزادسیمال (عدد کسری) به عنوان مثال: 0.5a2 16 می توان گفت که شامل: پنج شانزدهم، «الف» (ده) دویست و پنجاه و ششم و دو چهار هزار و نود و ششم است. و مقدار آن را می توان به صورت زیر محاسبه کرد:

    0.5a2 16 = 5 *(1/16) + 10 *(1/256) + 2 *(1/4096)

    و در اینجا یک سری از اعداد 1/16; 1/256 و 1/4096 چیزی جز توان های عدد صحیح شانزده نیستند و همچنین می توانیم بنویسیم:

    0.5a2 16 = 5 *16 -1 + 10 *16 -2 + 2 *16 -3

    برای عدد مختلط 7b2.1f9 می توانیم به طور مشابه بنویسیم:

    7b2.1f9 = 7 *16 2 +11 *16 1 +2 *16 0 +1 *16 -1 +15 *16 -2 +9 *16 -3

    ارقام قسمت صحیح یک عدد هگزادسیمال را از راست به چپ به صورت 0،1،2 ... n شماره گذاری می کنیم (شماره گذاری از صفر شروع می شود!). و ارقام قسمت کسری، از چپ به راست، مانند -1، -2، -3 ... -m، سپس مقدار یک عدد هگزادسیمال را می توان با فرمول محاسبه کرد:

    N = d n 16 n + d n-1 16 n-1 +…+d 1 16 1 +d 0 16 0 +d -1 16 -1 +d -2 16 -2 +…+d -(m-1) 16 -(m-1) +d -m 16 -m

    جایی که: n- تعداد ارقام در قسمت صحیح عدد منهای یک؛
    متر- تعداد ارقام در قسمت کسری عدد
    d i- شماره در مندسته -ام

    این فرمول فرمول بسط بیتی یک عدد هگزادسیمال نامیده می شود. عدد نوشته شده در سیستم هگزادسیمال اگر عدد شانزده را در این فرمول با تعدادی عدد دلخواه جایگزین کنیم q، سپس فرمول بسط را برای عدد نوشته شده به دست می آوریم qthسیستم شماره، یعنی با پایه q:

    N = d n q n +d n-1 q n-1 +…+d 1 q 1 +d 0 q 0 +d -1 q -1 +d -2 q -2 +…+d -(m-1) q - (m-1) +d -m q -m

    با استفاده از این فرمول، همیشه می توانید مقدار یک عدد نوشته شده در هر سیستم اعداد موقعیتی را با پایه محاسبه کنید q.

    سایر سیستم های شماره را می توانید در وب سایت ما در لینک های زیر مشاهده کنید.

    اکنون یک راه رفتن بسیار آسان در ارتباط با سیستم اعداد هگزا دسیمال وجود دارد. در این مورد، امیدواریم که مشکوک باشید، و احتمالاً به درستی، که اکنون باید 16 رقم متمایز داشته باشیم.

    اما، همانطور که می دانیم، تنها ده رقم سنتی ("عربی") وجود دارد. و شانزده طول می کشد. معلوم شد که شش شخصیت گم شده است.

    اظهار نظر
    بنابراین، یک کار صرفاً طراحی در مورد موضوع "نشانه ها" ایجاد می شود - پیدا کردن کاراکترهای گمشده برای اعداد
    .

    بنابراین، در یک زمان، متخصصان مجبور بودند علائم جدیدی ارائه دهند. اما یک بار، در ابتدای عصر کامپیوتر، انتخاب زیادی در علائم وجود نداشت. برنامه نویسان فقط نشانه هایی از اعداد و حروف داشتند. بنابراین، آنها مسیر ابتدایی را در پیش گرفتند: آنها حروف اول الفبای لاتین را به عنوان اعداد انتخاب کردند، به خصوص که از نظر تاریخی این اولین مورد نیست (ما قبلاً ذکر کردیم که در ابتدا بسیاری از مردم از حروف به جای اعداد استفاده می کردند).

    اظهار نظر
    امیدواریم همه بفهمند که چرا در این مورد استفاده از اعداد "10"، "11"، "12" و غیره غیرممکن است؟ زیرا اگر در مورد سیستم اعداد هگزادسیمال صحبت می کنیم، باید شانزده باشد شماره، نه اعداد
    .

    و عدد اعشاری "10" با حرف لاتین "A" (به طور دقیق تر، "عدد A") مشخص شد. بر این اساس، اعداد «ب»، «ج»، «د»، «ه» و «پ» در پی می آیند.

    از آنجایی که قصد داشتیم یک سیستم هگزادسیمال بسازیم، سپس از صفر شروع کنیم، در اینجا دقیقا 16 رقم به دست می آید. به عنوان مثال، عدد "D" عدد اعشاری "13" و عدد "F" عدد اعشاری "15" است.

    وقتی یک را به عدد هگزادسیمال "F" اضافه می کنیم، پس از آنجایی که این ارقام تمام شده است، "O" را در این رقم قرار می دهیم و یک را به رقم بعدی منتقل می کنیم، بنابراین معلوم می شود که عدد اعشاری " 16" در سیستم اعداد هگزادسیمال با عدد "10" نشان داده می شود، یعنی "ده هگزادسیمال" به نظر می رسد. بیایید اعداد اعشاری و هگزادسیمال را در یک جدول واحد ترکیب کنیم (جدول 4.5).

    جدول 4.5. تطبیق اعداد اعشاری و هگزادسیمال.

    عدد اعشاری عدد هگزادسیمال عدد اعشاری عدد هگزادسیمال
    0-9 0-9 29 1D
    10 آ 30 1E
    11 که در 31 1F
    12 با 32-41 20-29
    13 D 42-47 2A-2F
    14 E 48-255 30-FF
    15 اف 256 100
    16 10 512 200
    17-25 11-19 1024 400
    26 1A 1280 500
    27 1B 4096 1000
    28 1C

    سیستم هگزادسیمال برای نوشتن اطلاعات باینری فشرده تر استفاده می شود. در واقع، یک "هزار هگزادسیمال"، متشکل از چهار رقم، به شکل دودویی سیزده رقم می گیرد (1000 16 \u003d 1000000000000 2).

    هنگام بحث در مورد سیستم های اعداد، "ده ها"، "صدها" و "هزار" بارها ظاهر می شوند، بنابراین لازم است به اعداد به اصطلاح "گرد" توجه شود.

    برای نوشتن برنامه در اسمبلر، باید سیستم اعداد هگزادسیمال را بدانید. هیچ چیز پیچیده ای در آن وجود ندارد. ما از سیستم اعشاری در زندگی خود استفاده می کنیم. من مطمئن هستم که همه شما آن را می دانید، بنابراین من سعی می کنم سیستم هگزادسیمال را با قیاس با اعشار توضیح دهم.

    بنابراین، در سیستم اعشاری، اگر به سمت راست هر عددی صفر را اضافه کنیم، این عدد 10 برابر می شود. به عنوان مثال: 1 x 10 = 10; 10 x 10 = 100; 100 × 10 = 1000 و غیره در این سیستم از اعداد 0 تا 9 استفاده می کنیم. ده رقم مختلف (در واقع، به همین دلیل به آن اعشاری می گویند).

    در سیستم هگزادسیمال، ما به ترتیب از شانزده "رقم" استفاده می کنیم. من به طور خاص کلمه "اعداد" را در گیومه نوشتم، زیرا از اعداد بیشتر استفاده می کند. و واقعا چگونه است؟ من توضیح می دهم: از 0 تا 9 را به همان ترتیبی که در اعشار می شماریم، اما پس از آن اینگونه می شود: A, B, C, D, E, F. عدد F هر چقدر هم که سخت باشد. شمارش، در سیستم اعشاری برابر با 15 خواهد بود (جدول 1 را ببینید).

    عدد اعشاری

    عدد هگزادسیمال

    جدول 1. سیستم های اعشاری و هگزادسیمال.

    بنابراین، اگر به هر عددی در سیستم هگزادسیمال به سمت راست صفر اضافه کنیم، آنگاه این عدد افزایش می یابد.16 یک بار.

    مثال 1: 1 x 16 = 10; 10 x 16 = 100; 100 x 16 = 1000 و غیره

    آیا در مثال 1 توانستید هگزادسیمال را از اعشاری تشخیص دهید؟ و از این ردیف: 10، 12، 45، 64، 12، 8، 19؟ می تواند هگزادسیمال یا اعشاری باشد. به منظور جلوگیری از سردرگمی، و کامپیوتر می تواند به طور واضح یک عدد را از دیگری تشخیص دهد، در اسمبلر مرسوم است که نماد h یا H را بعد از عدد هگزادسیمال قرار می دهند. H مخفف انگلیسی است. هگزادسیمال (هگزادسیمال). به طور خلاصه، گاهی اوقات به آن ساده می گویند هگز ) . و بعد از اعشار چیزی نگذارید. زیرا اعداد از 0 تا 9 در هر دو سیستم دارای مقادیر یکسانی هستند، سپس اعدادی که به صورت 5 و 5h نوشته می شوند یکسان هستند.

    که مثال 1 (به بالا مراجعه کنید) درست تر است که به صورت زیر بنویسید: 1 x 16 = 10h; 10 ساعت × 16 = 100 ساعت؛ 100 ساعت × 16 = 1000 ساعت. یا مانند این: 1h x 10h = 10h; 10 ساعت × 10 ساعت = 100 ساعت؛ 100 ساعت × 10 ساعت = 1000 ساعت.

    چرا سیستم هگزادسیمال مورد نیاز است، در شماره های بعدی بررسی خواهیم کرد. در حال حاضر، برای نمونه برنامه ما که در ادامه به آن پرداخته خواهد شد، باید از وجود اعداد هگزادسیمال بدانیم.

    پس بیایید آن را خلاصه کنیم. سیستم اعداد هگزادسیمال شامل 10 رقم (از 0 تا 9) و 6 حرف از الفبای لاتین (A, B, C, D, E, F) است. اگر به سمت راست هر عددی در سیستم هگزادسیمال صفر اضافه کنیم، این عدد افزایش می یابد16 یک بار. درک این موضوع بسیار مهم است.، از آنجایی که ما دائماً از آن هنگام نوشتن برنامه استفاده خواهیم کرد.

    حالا کمی در مورد نحوه ساختن نمونه ها در اسمبلر. ارائه آنها در قالب HTML چندان راحت نیست، بنابراین ابتدا خود کد برنامه با خطوط شماره گذاری شده وجود خواهد داشت و بلافاصله بعد از آن توضیحات و یادداشت هایی ارائه می شود.

    مانند آن:

    خطوط کد برنامه
    (1) mov ah,9

    توضیحات:

    در ردیف (1) کاری انجام می دهیم و در ردیف (15) کاری را انجام می دهیم.

    درخواست بزرگ: برنامه ها را از صفحه به کلیپ بورد کپی نکنید و سپس آنها را در دفترچه یادداشت (یا هر جای دیگری) قرار ندهید! آنها را به صورت دستی در یک ویرایشگر متن تایپ کنید. اگر چاپگر وجود دارد، برنامه را انتخاب کنید، قطعه انتخاب شده را چاپ کنید و سپس از کاغذ به ویرایشگر منتقل کنید. همه نمونه ها باید توسط خودتان تایپ شوند!این امر به خاطر سپردن اپراتورها سرعت می بخشد.

    و بیشتر. حروف کوچک و بزرگ در اسمبلر متمایز نمی شوند. ورودی هایی مانند:

    اسمبلر به طور مساوی درک می شود. البته می توانید اسمبلر را مجبور کنید که بین کاراکترهای کوچک و UPPER تمایز قائل شود، اما فعلا این کار را انجام نمی دهیم. برای خوانایی برنامه، بهتر است عبارات را با حروف کوچک تایپ کنید و نام زیر روال ها و برچسب ها را با حروف بزرگ شروع کنید. اما اینگونه برای کسی راحت خواهد بود.

    پس بیایید به اولین برنامه خود برویم:

    (1) بخش CSEG

    (2) org 100h

    (4) شروع:

    (6) mov ah,9

    (7) mov dx، پیام افست

    (8) بین 21 ساعت

    (10) بین 20 ساعت

    (11)

    (12) پیام db "سلام، دنیا!$"

    (13) CSEG به پایان می رسد

    (14) پایان شروع

    برای توضیح همه عملگرهای این مثال به چندین قسمت نیاز داریم. بنابراین در این مرحله به سادگی از توضیح برخی دستورات صرف نظر می کنیم. فقط فکر کن اینطوری باید باشه در آینده ای نزدیک، این اپراتورها را به تفصیل بررسی خواهیم کرد. بنابراین، خطوط با اعداد (1)، (2) و (13) به سادگی نادیده گرفته می شوند.

    خطوط (3)، (5)، (9) و (11) خالی می مانند. این برای وضوح انجام می شود. اسمبلر به سادگی آنها را حذف می کند.

    حالا بیایید به سراغ بقیه اپراتورها برویم. از خط (4) کد برنامه شروع می شود. این یک برچسب است که به اسمبلر می گوید کد را شروع کند. خط (14) حاوی عبارات پایان Begin (انگلیسی را شروع کنید شروع؛ پایان پایان). این پایان برنامه است. به طور کلی، به جای کلمهشروع چیز دیگری می توانست استفاده شود مثلا،شروع:. در این صورت باید برنامه را کامل کنیمپایان شروع (14).

    در خطوط (6) (8) پیام Hello, world!. در اینجا باید به طور خلاصه در مورد رجیسترهای پردازنده صحبت کنیم (در شماره بعدی این موضوع را با جزئیات بیشتری بررسی خواهیم کرد).

    ثبات پردازنده یک حافظه اختصاصی برای ذخیره یک عدد است.

    مثلا:

    اگر بخواهیم دو عدد را جمع کنیم، در ریاضیات به این صورت می نویسیم:

    الف، ب و ج آنها نوعی ثبات هستند (اگر در مورد رایانه صحبت کنیم) که برخی از داده ها را می توان در آنها ذخیره کرد. A=5 را می توان به صورت زیر خواند: به A عدد 5 را اختصاص دهید .

    برای اختصاص یک مقدار به یک ثبات، یک عملگر mov در اسمبلر (از انگلیسی move load) وجود دارد. سطر (6) را باید به این صورت خواند: در حال بارگذاری در ثبت نام قعدد 9 (به عبارت دیگر، ما اختصاص می دهیم قشماره 9).در زیر ما بررسی خواهیم کرد که چرا این امر ضروری است.

    در خط (7) در رجیستر بارگذاری می کنیم DX آدرس پیامی که باید خروجی شود (در این مثال رشته خواهد بودسلام دنیا!$).

    وقفه ها در نسخه های بعدی به تفصیل پوشش داده خواهند شد. در اینجا چند کلمه می گویم.

    قطع کنید MS-DOS نوعی زیربرنامه است (بخشی از MS DOS)، که به طور دائم در حافظه است و می تواند در هر زمان از هر برنامه ای فراخوانی شود.

    موارد فوق را با یک مثال در نظر بگیرید (برجسته کردن یادداشت ها با چاپ کوچک):

    برنامه برای جمع دو عدد

    برنامه های خانگی

    A=5 در متغیر A مقدار 5 را وارد می کنیم

    B=8 به متغیر B مقدار 8

    اضافه کردن تماس زیر روال

    اکنون C 13 است

    A=10 یکسان، فقط اعداد متفاوت

    B=25

    اضافه کردن تماس زیر روال

    اکنون C 35 است

    پایان برنامه

    اضافه کردن زیربرنامه

    C=A+B

    ReturnFrom Subroutine به جایی که از آنجا زنگ زدیم برمی گردیم

    پایان زیربرنامه

    در این مثال ما دو بار زیر برنامه را فراخوانی کردیم اضافه، که دو عدد ارسال شده به آن را در متغیرها اضافه کردالف و ب . نتیجه در متغیر C قرار می گیرد. هنگامی که یک برنامه فرعی فراخوانی می شود، کامپیوتر به خاطر می آورد که از کجا فراخوانی شده است، و پس از پایان برنامه فرعی، کامپیوتر به مکانی که از آن فراخوانی شده است باز می گردد. که شما می توانید زیر روال ها را تعداد نامحدودی از هر جایی فراخوانی کنید.

    هنگام اجرای خط (8) یک برنامه اسمبلر، یک زیر روال (در این مورد وقفه نامیده می شود) را فرا می خوانیم که خط را روی صفحه چاپ می کند. برای این کار در واقع مقادیر لازم را در رجیسترها قرار می دهیم. تمام کارهای لازم (خروجی خط، حرکت مکان نما) توسط زیربرنامه انجام می شود. این خط را می توان اینگونه خواند: وقفه بیست و یکم را صدا می زنیم ( int از انگلیسی قطع کردن قطع کردن). لطفا توجه داشته باشید که بعد از عدد 21 یک حرف وجود داردساعت . همانطور که قبلاً می دانیم این یک عدد هگزادسیمال (33 در اعشار) است. البته هیچ چیز مانع از تعویض خط نمی شود int 21h تا int 33. برنامه به درستی کار خواهد کرد. فقط در اسمبلر مرسوم است که عدد وقفه را به صورت هگزادسیمال نشان دهند.

    در خط (10) ما، حدس زدید، وقفه 20 را صدا می کنیمساعت . برای فراخوانی این وقفه، نیازی به تعیین هیچ مقداری در رجیسترها ندارید. این تنها یک کار را انجام می دهد: خروج از برنامه (خروج از DOS). در نتیجه وقفه 20 ساعت، برنامه به جایی که راه اندازی شده (بارگذاری، فراخوانی) باز می گردد. به عنوان مثال، در Norton Commander یا DOS Navigator.

    خط (12) حاوی پیامی است که باید خروجی شود. اولین لغت (پیام پیام) نام پیام. این می تواند هر چیزی باشد (مثلاآشفتگی یا رشته و غیره). در باره به خط (7) که در آن در رجیستر بارگذاری می کنیم توجه کنید DX آدرس پیام ما

    ما می توانیم خط دیگری ایجاد کنیم که آن را فراخوانی می کنیمآشفتگی 2. سپس از خط (9) دستورات زیر را وارد کنید:

    (10) mov dx, offset Mess2

    (13) پیام db "سلام، دنیا!$"

    (14) Mess2 db "این من هستم! $"

    و دوباره برنامه ما را جمع آوری کنیم. امیدوارم حدس بزنید قرار است چه اتفاقی بیفتد

    به آخرین کاراکتر در خطوط توجه کنید Message and Mess2 - $. به انتهای خط اشاره می کند. اگر آن را حذف کنیم، 21ساعت وقفه به خروجی ادامه می دهد تا زمانی که یک کاراکتر در جایی از حافظه مواجه شود $. روی صفحه نمایش خواهیم دیدزباله .

    اگر یک دیباگر دارید، می توانید ببینید که برنامه ما چگونه کار می کند.

    هدف از این موضوع فهمیدن نبود به تفصیل با هر اپراتور. این غیر ممکن است، زیرا شما هنوز دانش کافی ندارید من معتقدم که بعد از 3-4 نسخه، اصل و ساختار برنامه را در اسمبلر درک خواهید کرد. شاید فکر می کردید که زبان اسمبلی بسیار پیچیده است، اما باور کنید، در یک نگاه.

    برای نمایش اعداد در یک ریزپردازنده، سیستم دودویی.
    در این حالت، هر سیگنال دیجیتالی می تواند دو حالت پایدار داشته باشد: «سطح بالا» و «سطح پایین». در سیستم باینری برای تصویر هر عددی به ترتیب از دو رقم 0 و 1 استفاده می شود. x=a n a n-1 ..a 1 a 0 ,a -1 a -2 …a -mبه صورت باینری نوشته شده است

    x = a n 2 n + a n-1 2 n-1 +…+ a 1 2 1 +a 0 2 0 +a -1 2 -1 +a -2 2 -2 +…+a -m 2 -m

    جایی که یک من- ارقام باینری (0 یا 1).

    سیستم اعداد هشتگانه

    در سیستم اعداد هشتگانه، ارقام پایه اعدادی از 0 تا 7 هستند.

    سیستم اعداد هگزادسیمال

    در سیستم اعداد هگزادسیمال، ارقام پایه اعداد 0 تا 15 هستند. برای تعیین ارقام پایه بزرگتر از 9 با یک کاراکتر، علاوه بر اعداد عربی 0 ... 9، از حروف الفبای لاتین در سیستم اعداد هگزادسیمال استفاده می شود:

    10 10 = A 16 12 10 = C 16 14 10 = E 16
    11 10 = B 16 13 10 = D 16 15 10 = F 16.

    به عنوان مثال، عدد 175 10 در هگزادسیمال به صورت AF 16 نوشته می شود. واقعا،

    10 16 1 +15 16 0 =160+15=175

    جدول شامل اعداد 0 تا 16 در سیستم های اعداد اعشاری، باینری، هشت و هگزادسیمال است.

    اعشاری دودویی هشتی هگزادسیمال
    0 0 0 0
    1 1 1 1
    2 10 2 2
    3 11 3 3
    4 100 4 4
    5 101 5 5
    6 110 6 6
    7 111 7 7
    8 1000 10 8
    9 1001 11 9
    10 1010 12 آ
    11 1011 13 ب
    12 1100 14 سی
    13 1101 15 D
    14 1110 16 E
    15 1111 17 اف
    16 10000 20 10

    تبدیل های باینری-اکتال و باینری-هگزادسیمال

    سیستم اعداد باینری برای انجام عملیات محاسباتی توسط سخت افزار ریزپردازنده راحت است، اما برای درک انسان ناخوشایند است، زیرا به تعداد زیادی ارقام نیاز دارد. بنابراین، در فناوری کامپیوتر، علاوه بر سیستم اعداد باینری، سیستم‌های اعداد هشت‌گانه و هگزا دسیمال به طور گسترده‌ای برای نمایش فشرده‌تر اعداد استفاده می‌شوند.

    سه بیت از سیستم اعداد اکتالی تمام ترکیبات ممکن از ارقام هشتگانه را در سیستم اعداد باینری پیاده سازی می کنند: از 0 (000) تا 7 (111). برای تبدیل یک عدد باینری به هشتی، باید ارقام باینری را در گروه های 3 رقمی (سه رقمی) در دو جهت ترکیب کنید، از جداکننده اعداد صحیح و کسری شروع کنید. در صورت لزوم باید صفرهای ناچیز به سمت چپ عدد اصلی اضافه شود. اگر عدد شامل یک قسمت کسری باشد، می توان صفرهای ناچیز را نیز به سمت راست آن اضافه کرد تا زمانی که تمام سه گانه ها پر شوند. سپس هر سه گانه با یک رقم هشتی جایگزین می شود.

    مثال: عدد 1101110.01 2 را به هشتی تبدیل کنید.

    ارقام باینری را به صورت سه گانه از راست به چپ ترکیب می کنیم. ما گرفتیم

    001 101 110,010 2 = 156,2 8 .

    برای تبدیل یک عدد از سیستم هشتی به باینری، باید هر رقم اکتال را در کد باینری آن بنویسید:

    156,2 8 = 001 101 110,010 2 .

    چهار بیت از سیستم اعداد هگزا دسیمال تمام ترکیبات ممکن از ارقام هگزا دسیمال را در سیستم اعداد باینری پیاده سازی می کنند: از 0 (0000) تا F (1111). برای تبدیل یک عدد باینری به هگزا دسیمال، باید ارقام باینری را در گروه های 4 رقمی (تتراد) در دو جهت ترکیب کنید، که از جداکننده اعداد صحیح و کسری شروع می شود. در صورت لزوم باید صفرهای ناچیز به سمت چپ عدد اصلی اضافه شود. اگر عدد شامل یک قسمت کسری باشد، باید صفرهای ناچیز نیز در سمت راست آن اضافه شود تا زمانی که تمام تترادها پر شوند. سپس هر تتراد با یک رقم هگزادسیمال جایگزین می شود.

    مثال: عدد 1101110.11 2 را به هگزادسیمال تبدیل کنید.

    ارقام باینری را از راست به چپ به تترادها ترکیب می کنیم. ما گرفتیم

    0110 1110.1100 2 = 6E,C 16.

    برای تبدیل یک عدد از هگزادسیمال به باینری، باید هر رقم هگزادسیمال را در کد باینری آن بنویسید.

    1. اگر با سیستم اعداد هگزادسیمال آشنایی ندارید از این روش استفاده کنید.یک روش ساده بصری می تواند توسط تقریبا هر کسی استفاده شود. اگر سیستم های اعداد مختلفی را می شناسید، در مورد آن بخوانید که در زیر توضیح داده شده است.

      • اگر اصلاً چیزی در مورد سیستم هگزادسیمال نمی دانید، با یادگیری مفاهیم اولیه شروع کنید.
    2. 16 را از 1 به 5 به توان ببرید و نتایج را یادداشت کنید.رقم هر رقم از یک عدد هگزادسیمال حاصل افزایش به توان 16 است، همانطور که رقم هر رقم یک عدد اعشاری حاصل افزایش به توان 10 است. لیست زیر از نتایج افزایش 16 است. به قدرت های مختلف در فرآیند تبدیل مفید خواهد بود:

      • 16 5 = 1048576
      • 16 4 = 65536
      • 16 3 = 4096
      • 16 2 = 256
      • 16 1 = 16
      • اگر عدد اعشاری که باید تبدیل شود بزرگتر از 1048576 است، 16 را به توان بزرگتر ببرید و نتیجه را به لیست اضافه کنید.
    3. در لیست، بزرگترین عددی که کمتر از عدد اعشاری داده شده است را پیدا کنید.عدد اعشاری داده شده را بنویسید تا به هگزادسیمال تبدیل شود. به لیست بالا نگاه کنید و بزرگترین نتیجه (توان 16) را پیدا کنید که کمتر از عدد اعشاری داده شده است.

      • به عنوان مثال، شما باید عدد اعشاری 495 را به هگزادسیمال تبدیل کنید. عدد 256 را از لیست انتخاب کنید.
    4. عدد اعشاری را بر توان انتخابی 16 تقسیم کنید.با نتیجه اعداد صحیح تقسیم کار کنید - اعداد بعد از نقطه اعشار را نادیده بگیرید.

      • در مثال ما: 495 ÷ 256 = 1.93... پس با عدد 1 کار کنید (این یک ضریب صحیح است).
      • حاصل اولین رقم از عدد هگزادسیمال است. در این حالت، عدد اعشاری داده شده را بر 256 تقسیم کرده اید، بنابراین عدد 1 در جای 256 قرار دارد.
    5. باقی مانده اول را پیدا کنید.یعنی باقیمانده تقسیم عدد اعشاری داده شده بر عدد انتخابی (مقسوم کننده). باقی مانده به همان روشی که هنگام تقسیم بر یک ستون محاسبه می شود.

      • ضریب حاصل را در مقسوم علیه ضرب کنید. در مثال ما: 1 x 256 = 256 (یعنی 1 در هگزادسیمال نشان دهنده 256 در پایه 10 است).
      • حاصل ضرب را از عدد اعشاری داده شده کم کنید: 495 - 256 = 239 .
    6. باقیمانده را بر نتیجه بعدی (در لیست) افزایش 16 به توان تقسیم کنید.به لیستی با نتایج افزایش 16 به قدرت های مختلف نگاه کنید. نتیجه ای را که در زیر نتیجه ای که برای بخش قبلی انتخاب کرده اید پیدا کنید. باقیمانده را بر عدد انتخاب شده تقسیم کنید تا رقم بعدی عدد هگزادسیمال را بیابید (اگر باقیمانده کمتر از عدد انتخاب شده باشد، رقم بعدی 0 است).

      • 239 ÷ 16 = 14 . اعداد بعد از اعشار را نادیده بگیرید.
      • این دومین رقم از عدد هگزادسیمال است که در جای 16 قرار دارد. هر عددی بین 0 تا 15 را می توان با یک رقم هگزادسیمال نشان داد. اعداد به دست آمده تبدیل شده و در انتهای این روش قرار می گیرند.
    7. باقی مانده دوم را پیدا کنید.برای این کار ضریب حاصل را در مقسوم علیه ضرب کنید و سپس حاصل ضرب را از باقی مانده اول کم کنید. باقی مانده دوم باید به یک رقم هگزادسیمال تبدیل شود.

      • 14 × 16 = 224.
      • 239 - 224 = 15، یعنی باقیمانده است 15 .
    8. روند بالا را تا زمانی که باقیمانده کمتر از 16 شود تکرار کنید.اگر باقیمانده عددی بین 0 تا 15 باشد، می توان آن را به صورت یک رقم هگزادسیمال بیان کرد. این رقم آخرین رقم خواهد بود.

      • آخرین رقم عدد هگزادسیمال 15 است که در جای یکها قرار دارد.
    9. اعداد دریافتی را تبدیل کنید و پاسخ را یادداشت کنید.شما تمام ارقام یک عدد هگزادسیمال را پیدا کرده اید. اما آنها به صورت اعشاری نوشته می شوند. برای تبدیل هر رقم به پایه 16، از دستورالعمل های زیر استفاده کنید:

      • اعداد از 0 تا 9 تغییر نمی کنند.
      • 10=A; 11 = B; 12=C; 13=D; 14=E; 15=F
      • در مثال ما، شما اعداد (1) (14) (15) را دریافت کردید. یعنی عدد هگزادسیمال به این صورت نوشته می شود: 1EF.
    10. پاسخ را بررسی کنید.اگر اصول اولیه سیستم اعداد هگزادسیمال را بدانید، انجام این کار آسان است. هر رقم هگزادسیمال را به یک رقم پایه 10 تبدیل کنید، سپس در نتیجه 16 ضرب کنید تا توانی که با موقعیت رقم مطابقت دارد. در مثال ما:

      • 1EF → (1) (14) (15)
      • با اعداد از راست به چپ کار کنید. 15 در جای یکها قرار دارد: 1 = 0 16، پس 15 x 1 = 15.
      • رقم بعدی در مکان شانزدهم قرار دارد: 16 = 16، بنابراین 14 x 16 = 224.
      • رقم بعدی در جای 256 است: 16 2 = 256، بنابراین 1 x 256 = 256.
      • نتایج یافت شده را اضافه کنید: 256 + 224 + 15 = 495، یعنی عدد اعشاری اصلی را دریافت می کنید.