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

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

    اگر به مبحث شبکه های کامپیوتری علاقه دارید می توانید سایر سوابق دروس را مطالعه کنید.

    4.4.1 مقدمه

    قبل از شروع، شایان ذکر است که چرا یک مهندس شبکه به این موضوع نیاز دارد. اگرچه هنگام صحبت می‌توان به ضرورت آن متقاعد شد، اما می‌توان گفت که ماشین‌حساب‌های IP وجود دارند که کار توزیع آدرس‌های IP، محاسبه زیرشبکه / ماسک‌های شبکه لازم و تعیین شماره شبکه و شماره میزبان در آدرس IP را تسهیل می‌کنند. . این طور است، اما ماشین حساب IP همیشه در دسترس نیست، این دلیل شماره یک است. دلیل شماره دو این است که امتحانات سیسکو به شما ماشین حساب IP نمی دهد و تمام. تبدیل آدرس های IP از اعشاری به باینری را باید روی یک تکه کاغذ انجام دهیدو در مواردی که در امتحان / امتحانات برای اخذ گواهینامه CCNA این مورد نیاز است، سؤالات کمی وجود ندارد، اگر امتحان به دلیل چنین چیز کوچکی غرق شود شرم آور خواهد بود. و در نهایت، درک سیستم اعداد باینری منجر به درک بهتر اصل عملکرد می شود.

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

    4.4.2 ارقام و اعداد اعشاری، ارقام در اعداد

    بیایید ساده شروع کنیم و در مورد ارقام و اعداد باینری صحبت کنیم، می دانید که اعداد و اعداد دو چیز متفاوت هستند. یک رقم یک نماد خاص برای تعیین است و عدد یک نماد انتزاعی است که به معنای یک مقدار است. مثلاً برای اینکه بنویسیم پنج انگشت در دست داریم می توانیم از اعداد رومی و عربی استفاده کنیم: V و 5. در این صورت پنج هم عدد است و هم عدد. و مثلا برای نوشتن عدد 20 از دو رقم 2 و 0 استفاده می کنیم.

    در مجموع در سیستم اعداد اعشاری ده رقم یا ده کاراکتر داریم (0,1,2,3,4,5,6,7,8,9) که با ترکیب آنها می توانیم اعداد مختلفی بنویسیم. هنگام استفاده از سیستم اعداد اعشاری از چه اصولی پیروی می کنیم؟ بله، همه چیز بسیار ساده است، ما ده را به یک درجه یا آن درجه می آوریم، مثلاً عدد 321 را می گیریم. چگونه می توان آن را متفاوت نوشت، اما به این صورت: 3*10 2 +2*10 1 +1*10 0 . بنابراین، معلوم می شود که عدد 321 نشان دهنده سه رقم است:

    1. عدد 3 به معنی مهم ترین رقم است یا در این مورد رقم صدهاست و در غیر این صورت عدد آنهاست.
    2. عدد 2 در محل ده ها قرار دارد، دو ده داریم.
    3. عدد یک کم اهمیت ترین رقم است.

    یعنی در این مدخل، دس فقط یک دس نیست، بلکه دو ده یا دو ده در ده است. سه گانه فقط سه برابر نیست، بلکه سه برابر صد است. چنین وابستگی به نظر می رسد: واحد هر رقم بعدی ده برابر بیشتر از واحد قبلی است، زیرا آنچه 300 است سه برابر صد است. یک انحراف در مورد سیستم اعداد اعشاری برای آسان‌تر کردن درک دودویی مورد نیاز بود.

    4.4.3 ارقام و اعداد باینری و علامت گذاری آنها

    در سیستم اعداد باینری فقط دو رقم وجود دارد: 0 و 1. بنابراین، نوشتن یک عدد به صورت دودویی اغلب بسیار بزرگتر از اعشاری است. به استثنای اعداد 0 و 1، صفر در باینری برابر با صفر در اعشار است و برای یک نیز به همین صورت است. گاهی اوقات برای اینکه اشتباه نشود که عدد در کدام سیستم اعداد نوشته شده است، از زیرشاخص هایی استفاده می شود: 267 10، 10100 12، 4712 8. عدد موجود در زیرشاخص سیستم اعداد را نشان می دهد.

    از کاراکترهای 0b و &(امپرسند) می توان برای نوشتن اعداد باینری استفاده کرد: 0b10111، &111. اگر در سیستم اعداد اعشاری برای تلفظ عدد 245 از این ساختار استفاده کنیم: دویست و چهل و پنج، سپس در سیستم اعداد دودویی برای نامگذاری عدد، باید عدد را از هر رقم تلفظ کنیم، به عنوان مثال، عدد 1100 در سیستم اعداد باینری نباید به صورت هزارصد تلفظ شود، بلکه باید یک، یک، صفر، صفر تلفظ شود. بیایید به اعداد 0 تا 10 در نماد دودویی نگاه کنیم:

    من فکر می کنم تا الان منطق باید مشخص باشد. اگر در سیستم اعداد اعشاری برای هر رقم ده گزینه در دسترس داشتیم (از 0 تا 9 شامل)، پس در سیستم اعداد باینری در هر یک از ارقام یک عدد باینری فقط دو گزینه داریم: 0 یا 1.

    برای کار با آدرس های IP و ماسک های زیر شبکه، اعداد طبیعی در سیستم باینری برای ما کافی است، اگرچه سیستم باینری امکان نوشتن اعداد کسری و منفی را به ما می دهد، اما ما به این نیاز نداریم.

    4.4.4 تبدیل اعداد از اعشار به باینری

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

    در عین حال توجه داشته باشید که عدد 61 101111 نیست، بلکه 111101 است، یعنی نتیجه را از آخر می نویسیم. معنی خاصی در تقسیم بر دو در آخرین مورد وجود ندارد، زیرا در این مورد از تقسیم عدد صحیح استفاده می شود و با این رویکرد مانند شکل 4.4.2 معلوم می شود.

    این سریعترین راه برای تبدیل یک عدد از باینری به اعشاری نیست. ما چندین شتاب دهنده داریم. به عنوان مثال، عدد 7 در سیستم باینری به عنوان 111، عدد 3 به عنوان 11، و عدد 255 به عنوان 11111111 نوشته می شود. همه این موارد به طرز فجیعی ساده هستند. واقعیت این است که اعداد 8 و 4 و 256 توان های دو هستند و اعداد 7 و 3 و 255 یک عدد کمتر از این اعداد هستند. بنابراین برای عددی که یک عدد کمتر از عددی برابر توان دو است، یک قانون ساده اعمال می‌شود: در سیستم دودویی، چنین عدد اعشاری به صورت تعداد واحدهای برابر با توان دو نوشته می‌شود. مثلاً عدد 256 دو ​​به توان هشتم است، بنابراین 255 به صورت 11111111 و عدد 8 دو به توان سوم است و این به ما می گوید که 7 در سیستم باینری به صورت 111 نوشته می شود. خوب، درک کنید، نحوه نوشتن 256، 4 و 8 به صورت باینری نیز دشوار نیست، فقط یکی را اضافه کنید: 256 = 11111111 + 1 = 100000000. 8 = 111 + 1 = 1000; 4 = 11 + 1 = 100.
    شما می توانید هر یک از نتایج خود را در یک ماشین حساب بررسی کنید، و در ابتدا بهتر است این کار را انجام دهید.

    همانطور که می بینید، ما هنوز نحوه اشتراک گذاری را فراموش نکرده ایم. و اکنون می توانیم ادامه دهیم.

    4.4.5 تبدیل اعداد از باینری به اعشاری

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

    برای به دست آوردن یک اعشار از این عدد دودویی، باید هر عدد از رقم را در دو در توان ضرب کنید، و سپس نتایج ضرب را اضافه کنید، نشان دادن آن آسان تر است:

    1*2 4 +1*2 3 +1*2 2 +1*2 1 +0*2 0 = 16+8+4+2+0=30

    بیایید ماشین حساب را باز کنیم و مطمئن شویم که 30 در اعشار 11110 در باینری است.

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

    ما به بیشتر نیاز نداریم، زیرا حداکثر تعداد ممکن که می توان در یک بایت نوشت (8 بیت یا هشت مقدار باینری) 255 است، یعنی در هر اکتت آدرس IP یا ماسک زیر شبکه IPv4، حداکثر مقدار ممکن است. 255. فیلدهایی وجود دارد که در آنها مقادیر بزرگتر از 255 وجود دارد، اما ما نیازی به محاسبه آنها نداریم.

    4.4.6 جمع، تفریق، ضرب اعداد باینری و سایر عملیات با اعداد باینری

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

    جمع دودویی

    اضافه کردن اعداد باینری چندان سخت نیست: 1+0 =1; 1+1=0 (بعداً توضیح خواهم داد). 0+0=0. اینها نمونه های ساده ای بودند که در آن فقط یک رقم استفاده شده بود، بیایید به نمونه هایی نگاه کنیم که تعداد ارقام بیش از یک است.
    101 + 1101 در اعشار 5 + 13 = 18 است. بیایید در یک ستون بشماریم.

    نتیجه با رنگ نارنجی مشخص شده است، ماشین حساب می گوید که ما درست محاسبه کردیم، می توانید آن را بررسی کنید. حالا بیایید ببینیم چرا این اتفاق افتاد، زیرا در ابتدا نوشتم که 1 + 1 = 0، اما این برای مواردی است که فقط یک رقم داریم، برای مواردی که بیش از یک رقم وجود دارد، 1 + 1 = 10 (یا دو) به صورت اعشاری)، که منطقی است.

    سپس ببینید چه اتفاقی می‌افتد، ما جمع‌ها را با ارقام از راست به چپ انجام می‌دهیم:

    1. 1+1=10، صفر بنویسید و یک به بیت بعدی می رود.

    2. در رقم بعدی 0+0+1=1 به دست می آید (این واحد از نتیجه جمع در مرحله 1 به دست ما رسیده است).

    4. در اینجا ما یک واحد فقط برای عدد دوم داریم، اما به اینجا منتقل شده است، بنابراین 0 + 1 + 1 = 10.

    5. همه چیز را به هم بچسبانید: 10|0|1|0.

    اگر تنبلی در یک ستون است، پس بیایید اینطور بشماریم: 101011 + 11011 یا 43 + 27 = 70. اینجا چه کار می توانیم بکنیم، اما بیایید نگاه کنیم، زیرا هیچ کس ما را از ایجاد دگرگونی منع نمی کند، و مجموع از تغییر تغییر نمی کند. مکان‌های عبارات، برای سیستم اعداد باینری نیز این قانون اعمال می‌شود.

    1. 101011 = 101000 + 11 = 101000 + 10 + 1 = 100000 + 1000 + 10 + 1.
    2. 11011 = 11000 + 10 + 1 = 10000 + 1000 + 10 + 1.
    3. 100000 + 10000 + (1000 +1000) + (10+10) + (1+1).
    4. 100000 + (10000 + 10000) + 100 + 10.
    5. 100000 + 100000 +110
    6. 1000000 + 110.
    7. 1000110.

    می توانید با ماشین حساب بررسی کنید، 1000110 در باینری 70 در اعشار است.

    تفریق اعداد باینری

    مثالی برای تفریق اعداد تک رقمی در سیستم اعداد باینری، ما در مورد اعداد منفی صحبت نکردیم، بنابراین 0-1 را در نظر نمی گیریم: 1 - 0 = 1. 0 - 0 = 0; 1 - 1 = 0. اگر بیش از یک رقم وجود داشته باشد، پس همه چیز نیز ساده است، حتی هیچ ستون و ترفندی لازم نیست: 110111 - 1000، این همان 55 - 8 است. در نتیجه، 101111 به دست می آید. ضربان قلب متوقف شد، واحد رقم سوم از کجا می آید (شماره گیری از چپ به راست و شروع از صفر)؟ بله، همه چیز ساده است! در رقم دوم عدد 110111 0 و در رقم اول 1 است (اگر فرض کنیم شماره گذاری ارقام از 0 شروع شده و از چپ به راست می رود) اما واحد رقم چهارم بدست می آید. با اضافه کردن دو واحد از رقم سوم (نوعی دو مجازی به دست می آید) و از این دو جداسازی یک را کم می کنیم که در رقم صفر عدد 1000 است، اما 2 - 1 \u003d 1، خوب، 1 معتبر است. رقم در سیستم اعداد باینری

    ضرب اعداد باینری

    برای ما باقی مانده است که ضرب اعداد باینری را در نظر بگیریم که با جابجایی یک بیت به چپ اجرا می شود.. اما ابتدا به نتایج حاصل از ضرب تک رقمی نگاه می کنیم: 1*1 = 1; 1*0=0 0*0=0. در واقع، همه چیز ساده است، حالا بیایید به چیز پیچیده تر نگاه کنیم. بیایید اعداد 101001 (41) و 1100 (12) را در نظر بگیریم. در یک ستون ضرب خواهیم کرد.

    اگر از جدول مشخص نیست که چگونه اتفاق افتاده است، سعی می کنم با کلمات توضیح دهم:

    1. ضرب اعداد باینری در یک ستون راحت است، بنابراین عامل دوم را زیر عامل اول می نویسیم، اگر اعداد تعداد ارقام متفاوتی داشته باشند، اگر عدد بزرگتر در بالا باشد راحت تر خواهد بود.
    2. گام بعدی این است که تمام ارقام عدد اول را در کمترین رقم عدد دوم ضرب کنیم. حاصل ضرب را در زیر می نویسیم؛ در این صورت لازم است آن را طوری یادداشت کنیم که حاصل ضرب زیر هر رقم مربوطه نوشته شود.
    3. اکنون باید تمام ارقام عدد اول را در رقم بعدی عدد دوم ضرب کنیم و نتیجه را یک خط دیگر در زیر بنویسیم، اما این نتیجه باید یک رقم به سمت چپ منتقل شود، اگر به جدول نگاه کنید، این دومین دنباله صفر از بالا است.
    4. شما باید همین کار را برای ارقام بعدی انجام دهید، هر بار یک رقم را به سمت چپ حرکت دهید، و اگر به جدول نگاه کنید، می توانید آن یک سلول را به سمت چپ بگویید.
    5. ما چهار عدد دودویی گرفتیم که حالا باید آنها را جمع کنیم و نتیجه را بگیریم. علاوه بر این که اخیراً در نظر گرفتیم، مشکلات نباید ایجاد شود.

    به طور کلی، عملیات ضرب چندان دشوار نیست، فقط باید کمی تمرین کنید.

    عملیات جبر بولی

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

    عملیات "Logical AND" یا AND

    عملیات Logical AND یا AND معادل ضرب اعداد باینری یک بیتی است.

    1 و 1 = 1; 1 و 0 = 1; 0 و 0 = 0; 0 و 1 = 0.

    1 و 1 = 1 ;

    1 و 0 = 1 ;

    0 و 0 = 0 ;

    0 و 1 = 0.

    نتیجه "Logical AND" تنها در صورتی یک خواهد بود که هر دو مقدار برابر با یک باشند، در سایر موارد صفر خواهد بود.

    عملیات Logical OR یا OR

    عملیات Logical OR یا OR طبق اصل زیر عمل می کند: اگر حداقل یک مقدار برابر با یک باشد، نتیجه یک خواهد بود.

    1 یا 1 = 1; 1 یا 0 = 1; 0 یا 1 = 1; 0 یا 0 = 0.

    1 یا 1 = 1 ;

    1 یا 0 = 1 ;

    0 یا 1 = 1 ;

    0 یا 0 = 0.

    عملیات XOR

    عمل XOR یا XOR تنها در صورتی نتیجه یک را به ما می دهد که یکی از عملوندها برابر با یک و دومی برابر با صفر باشد. اگر هر دو عملوند صفر باشند، صفر و حتی اگر هر دو عملوند برابر با یک باشند، نتیجه صفر خواهد بود.

    برای تبدیل سریع اعداد از اعشار به باینری، باید اعداد "2 به توان" را به خوبی بدانید. به عنوان مثال، 2 10 \u003d 1024 و غیره. این به شما امکان می دهد چند نمونه را برای ترجمه در عرض چند ثانیه حل کنید. یکی از این وظایف است task A1 از نسخه ی نمایشی USE 2012. البته می توانید عدد را طولانی و خسته کننده بر "2" تقسیم کنید. اما بهتر است متفاوت تصمیم بگیرید و در وقت ارزشمند امتحان صرفه جویی کنید.

    روش بسیار ساده است. ماهیت آن این است: اگر عددی که باید از سیستم اعشاری تبدیل شود برابر با عدد "2 به توان" باشد، این عدد در سیستم دودویی شامل تعداد صفرهای برابر توان است. جلوی این صفرها یک "1" اضافه می کنیم.

    • بیایید عدد 2 را از سیستم اعشاری ترجمه کنیم. 2=2 1 . بنابراین، در سیستم باینری، عدد شامل 1 صفر است. "1" را در جلو قرار می دهیم و 10 2 می گیریم.
    • بیایید 4 را از سیستم اعشاری ترجمه کنیم. 4=2 2 . بنابراین، در سیستم باینری، عدد شامل 2 صفر است. "1" را در جلو قرار می دهیم و 100 2 می گیریم.
    • بیایید 8 را از سیستم اعشاری ترجمه کنیم. 8=2 3 . بنابراین در سیستم باینری عدد شامل 3 صفر است. "1" را در جلو قرار می دهیم و 1000 2 می گیریم.


    به طور مشابه برای اعداد دیگر "2 به توان".

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

    • بیایید 3 را از سیستم اعشاری ترجمه کنیم. 3=2 2 -1. بنابراین، در سیستم باینری، عدد شامل 2 یک است. 11 2 می گیریم.
    • بیایید 7 را از سیستم اعشاری ترجمه کنیم. 7=2 3 -1. بنابراین، در سیستم باینری، عدد شامل 3 یک است. ما 111 2 را دریافت می کنیم.

    در شکل، مربع ها نمایش دودویی عدد را نشان می دهند و در سمت چپ، نمایش اعشاری صورتی است.


    ترجمه برای سایر اعداد "2 به توان -1" مشابه است.

    واضح است که ترجمه اعداد از 0 تا 8 را می توان به سرعت یا با تقسیم انجام داد و یا به سادگی نمایش آنها را در سیستم باینری دانست. من این مثال ها را آوردم تا اصل این روش را بفهمید و از آن برای ترجمه بیشتر «اعداد تأثیرگذار» استفاده کنید، مثلاً اعداد 127،128، 255، 256، 511، 512 و غیره را ترجمه کنید.

    شما می توانید چنین وظایفی را زمانی انجام دهید که نیاز به ترجمه عددی داشته باشید که با عدد "2 به توان" برابر نیست، اما نزدیک به آن باشد. می تواند بزرگتر یا کمتر از عدد "2 به توان" باشد. تفاوت بین عدد ترجمه شده و عدد "2 به توان" باید کم باشد. به عنوان مثال، تا 3. نمایش اعداد از 0 تا 3 در سیستم باینری باید به سادگی بدون ترجمه شناخته شود.

    اگر عدد بزرگتر از عدد باشد، آن را به صورت زیر حل می کنیم:

    ابتدا عدد "2 به توان" را به سیستم باینری ترجمه می کنیم. و سپس تفاوت عدد "2 به توان" و عدد ترجمه شده را به آن اضافه می کنیم.

    برای مثال، بیایید 19 را از سیستم اعشاری ترجمه کنیم. از عدد "2 به توان" 3 بزرگتر است.

    16=2 4 . 16 10 =10000 2 .

    3 10 =11 2 .

    19 10 =10000 2 +11 2 =10011 2 .

    اگر عدد کمتر از عدد "2 به توان" باشد، استفاده از عدد "2 به توان -1" راحت تر است. ما اینطور تصمیم می گیریم:

    ابتدا عدد "2 به توان -1" را به سیستم باینری ترجمه می کنیم. و سپس تفاوت بین عدد "2" را به توان -1 و عدد ترجمه شده از آن کم کنید.

    به عنوان مثال، بیایید 29 را از سیستم اعشاری ترجمه کنیم. از عدد "2 به توان 1" 2 بزرگتر است. 29=31-2.

    31 10 =11111 2 .

    2 10 =10 2 .

    29 10 =11111 2 -10 2 =11101 2

    اگر تفاوت بین عدد ترجمه شده و عدد "2 به توان" بیش از سه باشد، می توانید عدد را به اجزاء تقسیم کنید، هر قسمت را به سیستم باینری تبدیل کرده و اضافه کنید.

    به عنوان مثال، عدد 528 را از سیستم اعشاری ترجمه کنید. 528=512+16. 512 و 16 را جداگانه ترجمه می کنیم.
    512=2 9 . 512 10 =1000000000 2 .
    16=2 4 . 16 10 =10000 2 .
    حالا بیایید آن را روی هم جمع کنیم:

    در یکی از مطالب خود، ما تعریف . کوتاه ترین الفبا را دارد. فقط دو رقم: 0 و 1. نمونه هایی از الفبای سیستم های اعداد موقعیتی در جدول آورده شده است.

    سیستم های اعداد موقعیتی

    نام سیستم

    پایه

    الفبا

    دودویی

    سه تایی

    کواترنر

    پنج برابر

    هشتی

    اعشاری

    0,1,2,3,4,5,6,7,8,9

    دوازدهه ای

    0,1,2,3,4,5,6,7,8,9,A,B

    هگزادسیمال

    0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

    سی و شش

    0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G, H,I,J,K,L,M,N,O, P، R، S، T، U، V، X، Y، Z


    برای تبدیل عدد کوچک از اعشار به باینری و بالعکس بهتر است از جدول زیر استفاده کنید.

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

    اعشاری

    عدد

    عدد باینری

    اعشاری

    عدد

    عدد باینری


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


    چگونه از یک سیستم عددی به سیستم دیگر تبدیل کنیم؟ در علوم کامپیوتر چندین راه ساده برای تبدیل اعداد اعشاری به اعداد باینری وجود دارد. بیایید دو مورد از آنها را در نظر بگیریم.

    روش شماره 1.

    فرض کنید می خواهید یک عدد را ترجمه کنید 637 سیستم اعشاری به سیستم باینری


    این کار به صورت زیر انجام می شود: حداکثر توان دو به دست می آید به طوری که دو در این توان کمتر یا مساوی با عدد اصلی باشد.


    در مورد ما، این 9 است، زیرا 2 9 =512 ، آ 2 10 =1024 ، که از عدد اولیه ما بیشتر است. بنابراین، تعداد ارقام نتیجه را به دست آوردیم. برابر است با 9+1=10. این به این معنی است که نتیجه به شکل 1ххххххххх خواهد بود، جایی که به جای x می تواند 1 یا 0 باشد.


    رقم دوم نتیجه را پیدا کنید. بیایید دو را به توان 9 برسانیم و از عدد اصلی کم کنیم: 637-2 9 =125. سپس با عدد مقایسه کنید 2 8 =256 . از آنجایی که 125 کمتر از 256 است، بیت نهم 0 خواهد بود، یعنی. نتیجه قبلاً به شکل 10хххххххх خواهد بود.


    2 7 =128 > 125 ، بنابراین رقم هشتم صفر خواهد بود.


    2 6 =64 پس رقم هفتم برابر است با 1. 125-64=61 بنابراین، ما چهار رقم مرتبه بالا دریافت کرده ایم و عدد به نظر می رسد 10011ххххх.


    2 5 =32 و ببینید که 32< 61, значит шестой разряд равен 1 (результат 100111хххх), остаток 61-32=29.


    2 4 =16 < 29 - رقم پنجم 1 => 1001111xxx. باقیمانده 29-16=13.


    2 3 =8 < 13 => 10011111xx. 13-8=5


    2 2 =4 < 5 => 10011111xx، باقیمانده 5-4=1.


    2 1 =2 > 1 => 100111110x، باقیمانده 2-1=1.


    2 0 =1 => 1001111101.


    این نتیجه نهایی خواهد بود.

    روش شماره 2.

    قانون تبدیل اعداد اعشاری صحیح به سیستم اعداد باینری به شرح زیر است:

    1. تقسیم کنیم a n−1 a n−2 ...a 1 a 0 =a n−1⋅2 n−1 +a n−2⋅2 n−2 +...+a 0⋅2 0 در 2.
    2. ضریب خواهد بود an-1⋅2n−2+...+a1، و باقیمانده خواهد بود
    3. ضریب حاصل دوباره بر 2 تقسیم می شود، باقیمانده تقسیم برابر با a1 خواهد بود.
    4. اگر این روند تقسیم را ادامه دهیم، در مرحله n ام مجموعه ای از اعداد به دست می آید: a 0 ,a 1 ,a 2 ,...,a n−1، که در نمایش دودویی عدد اصلی گنجانده می شوند و وقتی متوالی بر 2 تقسیم می شوند با باقی مانده ها منطبق می شوند.
    5. بنابراین، برای تبدیل یک عدد صحیح اعشاری به یک سیستم اعداد باینری، باید عدد داده شده و ضرایب اعداد صحیح حاصل را به ترتیب بر 2 تقسیم کنید تا زمانی که ضریب برابر با صفر شود.

    عدد اصلی در سیستم اعداد باینری با ثبت متوالی باقیمانده های حاصل جمع آوری می شود. از آخرین موردی که پیدا شد شروع به نوشتن می کنیم.


    تبدیل عدد اعشاری 11 به سیستم باینری دنباله اقدامات در نظر گرفته شده در بالا (الگوریتم ترجمه) را می توان به صورت زیر نشان داد:


    بدست آورد 11 10 =1011 2 .

    مثال:

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



    363 10 =101101011 2



    رایج ترین روش های محاسبه در دنیای مدرن اعشاری و باینری هستند. آنها در مناطق کاملاً متفاوت استفاده می شوند، اما هر دو به یک اندازه مهم هستند. اغلب تبدیل از باینری به اعشاری یا برعکس نیز مورد نیاز است. نام ها از پایه می آیند، که بستگی به تعداد کاراکتر در نوشتن اعداد دارد. در باینری فقط 0 و 1 است و در اعشار از 0 تا 9 است. در سیستم های دیگر علاوه بر اعداد از حروف، نمادهای دیگر و حتی هیروگلیف استفاده می شود، اما تقریباً همه آنها مدت ها است که قدیمی شده اند. از آنجایی که حتی انواع دیگر سیستم های اعداد بسیار کمتر رایج هستند، ما در درجه اول بر دو مورد ذکر شده تمرکز خواهیم کرد. این واقعا شگفت انگیز است که چگونه همه اینها می توانند به وجود بیایند. بیایید در مورد این موضوع جداگانه صحبت کنیم.

    تاریخچه وقوع

    حتی در حال حاضر، زمانی که به نظر می رسد که تمام جهان یکسان فکر می کنند، سیستم های بسیار متفاوتی وجود دارد. در دورافتاده ترین نقاط جهان، فقط به مفاهیم «یک»، «دو» و «بسیار» یا چیزی شبیه به آن بسنده می کنند. در مورد آن مواقعی که تماس افراد با یکدیگر بسیار دشوارتر بود، چه می توان گفت، بنابراین تعداد زیادی از انواع مختلف سوابق و روش های محاسبه استفاده می شد. بشر بلافاصله به سیستم موجود نرسید و این در این واقعیت منعکس می شود که ساعت به 60 دقیقه تقسیم می شود و نه به 100 بازه زمانی که منطقی تر به نظر می رسد. و در همان زمان، مردم اغلب با ده ها شمارش می کنند تا ده ها. همه اینها پژواک زمانی است که انگشتان خود یا مثلاً فالانژهای برخی از آنها ابزاری برای تعیین کمیت چیزی بودند. این گونه بود که سیستم های اعشاری و دوازدهه ای به وجود آمدند. اما باینری چگونه به وجود آمد؟ خیلی ساده و منطقی. واقعیت این است که به عنوان مثال، دیودها فقط دو موقعیت دارند: می توانند روشن یا خاموش باشند. بنابراین، حالت اول را می توان به صورت 1 و حالت دوم را 0 نوشت. با این حال، این بدان معنا نیست که سیستم باینری همزمان با دستگاه های الکترونیکی ایجاد شده است. خیلی زودتر از آن استفاده می شد، به عنوان مثال، لایب نیتس آن را بسیار راحت، ظریف و ساده می دانست. حتی تعجب آور است که این سیستم شماره در نهایت به سیستم اصلی تبدیل نشد.

    برنامه های کاربردی

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

    تفاوت ها و ویژگی ها

    هنگامی که صحبت از سیستم های اعداد به میان می آید، ضروری است که به نوعی بین آنها تمایز قائل شویم. از این گذشته، تشخیص 11 یا 100 در روش های مختلف ضبط به همین شکل کاملاً غیرممکن است. به همین دلیل است که از نشانگر زیر و سمت راست خود عدد استفاده می شود. بنابراین، وقتی رکورد 11 2 یا 100 10 را می بینید، می توانید متوجه شوید که چه چیزی در خطر است. هر دو سیستم موقعیتی هستند، یعنی مقدار آن به مکان یک رقم خاص بستگی دارد. آنها در مورد ارقام سیستم اعشاری در مدرسه صحبت می کنند: واحدها، ده ها، صدها، هزاران و غیره وجود دارد. در باینری، همه چیز یکسان است. اما با توجه به این واقعیت که پایه آن - 2 - کمتر از 10 است، به ارقام بسیار بیشتری نیاز دارد، یعنی ضبط اعداد بسیار طولانی تر است. به هر حال، در باینری، مانند همه سیستم های دیگر، به جز اعشاری، به عنوان رایج ترین، خواندن به روشی خاص اتفاق می افتد. اگر پایه 10 امکان خواندن 101 را به عنوان "صد و یک" فراهم کند، برای 2 آن "یک صفر یک" خواهد بود.

    برگردیم به بحث دبی ها باید این نکته را تکرار کرد که به دلیل پایه بسیار کوچکتر، دبی های بیشتری مورد نیاز است. بنابراین، برای مثال، 8 10، 1000 2 است. تفاوت آشکار است - یک رقمی و چهار. تفاوت عمده دیگر این است که هیچ اعداد منفی در سیستم باینری وجود ندارد. البته، می توانید آن را یادداشت کنید، اما همچنان به روش دیگری ذخیره و رمزگذاری می شود. بنابراین، ترجمه از باینری به اعشاری و بالعکس چگونه است؟

    الگوریتم

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

    2) به طور متوالی مقدار را در 2 ضرب کنید تا به توان برابر با شماره موقعیت.

    3) نتایج را جمع کنید.

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

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

    1) عدد اصلی را بر 2 تقسیم کنید و باقیمانده (1 یا 0) را یادداشت کنید.

    2) مرحله 1 را تکرار کنید تا فقط 0 یا 1 باقی بماند.

    3) مقادیر به دست آمده را به ترتیب یادداشت کنید.

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

    کسری

    خوشبختانه یا متأسفانه، این واقعیت باقی است که نه تنها از اعداد صحیح در سیستم باینری استفاده می شود. ترجمه کسری ها خیلی سخت نیست، اما اغلب برای یک فرد کار پر زحمتی است. اگر عدد اصلی در سیستم اعشاری نشان داده شود، پس از تبدیل عدد صحیح، همه چیز بعد از نقطه اعشار دیگر نباید تقسیم شود، بلکه باید در 2 ضرب شود و کل قطعات را یادداشت کنید. اگر از باینری به اعشاری تبدیل می کنید، همه چیز حتی ساده تر است. در این حالت، هنگامی که تبدیل نقطه اعشاری شروع می شود، توانی که 2 به آن افزایش می یابد، به ترتیب -1، -2، -3 و غیره خواهد بود. بهتر است در عمل این را در نظر بگیرید.

    مثال

    برای درک نحوه اعمال الگوریتم های توصیف شده، باید تمام عملیات را خودتان انجام دهید. تمرین همیشه می تواند نظریه را تقویت کند، بنابراین بهتر است مثال های زیر را در نظر بگیرید:

    • تبدیل 1000101 2 به اعشاری: 1x2 6 + 0x2 5 + 0x2 4 + 0x2 3 + 1x2 2 + 0x2 1 + 1x2 0 = 64+0+0+0+4+1 = 69 10;
    • با استفاده از روش هورنر 00110111010 2 = 0x2+0=0x2+0=0x2+1=1x2+1=3x2+0=6x2+1=13x2+1=27x2+1=55x2+0=110x2+1=221x2+0=442 10;
    • 1110.01 2: 1x2 3 + 1x2 2 + 1x2 1 + 0x2 0 + 0x2 -1 + 1x2 -2 \u003d 8 + 4 + 2 + 0.25 \u003d 14.25 10;
    • از سیستم اعشاری: 15 10 = 15/2=7(1)/2=3(1)/2=1(1)/2=0(1)= 1111 2 ;

    چگونه گیج نشویم؟

    حتی در مثال فقط سیستم های باینری و اعشاری، روشن می شود که تغییر پایه به صورت دستی کار بی اهمیتی نیست. اما موارد دیگری نیز وجود دارد: هگزا دسیمال، اکتال، جنسیس و غیره. هنگام تبدیل دستی از یک سیستم عددی به سیستم دیگر، مراقبت بسیار ضروری است. گیج نشدن واقعا سخت است، به خصوص اگر پست طولانی باشد. علاوه بر این، نباید فراموش کنیم که ارقام از 0 شمارش می شوند نه 1، یعنی تعداد ارقام همیشه یک رقم بیشتر خواهد بود. البته باید تعداد ارقام را با دقت بشمارید و در عملیات حسابی اشتباه نکنید و البته مراحل الگوریتم را رد نکنید. در نهایت، راه‌هایی برای انتقال برنامه‌ای بین پایه‌ها وجود دارد. اما در اینجا نوشتن یک فیلمنامه ساده تر از جستجوی آن در وسعت وب جهانی است. در هر صورت، مهارت های ترجمه دستی و همچنین درک نظری از نحوه انجام این کار نیز باید باشد.

    دستورالعمل

    ویدیو های مرتبط

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

    شما نیاز خواهید داشت

    • - یک تکه کاغذ؛
    • - مداد یا خودکار؛
    • - ماشین حساب.

    دستورالعمل

    سیستم باینری ساده ترین است. این فقط دو رقم دارد - صفر و یک. هر رقم باینری شماره، که از انتها شروع می شود، با توان دو مطابقت دارد. دو برابر یک، اولی برابر دو، دومی برابر چهار، سومی برابر هشت و غیره.

    فرض کنید یک عدد باینری 1010110 به شما داده شده است. واحدهای موجود در آن از انتها در مکان های دوم، سوم، پنجم و هفتم قرار دارند. بنابراین در اعشار این عدد 2^1 + 2^2 + 2^4 + 2^6 = 2 + 4 + 16 + 64 = 86 است.

    مسئله معکوس - اعشاری شمارهسیستم. فرض کنید عدد 57 را دارید. برای بدست آوردن رکورد آن، باید این عدد را به ترتیب بر 2 تقسیم کنید و باقیمانده تقسیم را یادداشت کنید. عدد باینری از انتها به ابتدا ساخته خواهد شد.
    مرحله اول آخرین رقم را به شما می دهد: 57/2 = 28 (باقی مانده 1).
    سپس دومی را از آخر دریافت می کنید: 28/2 = 14 (باقی مانده 0).
    مراحل بعدی: 14/2 = 7 (باقی مانده 0)؛
    7/2 = 3 (باقی مانده 1)؛
    3/2 = 1 (باقی مانده 1)؛
    1/2 = 0 (باقی مانده 1).
    این آخرین مرحله است زیرا نتیجه تقسیم صفر است. در نتیجه شما عدد باینری 111001 را دریافت می کنید.
    بررسی کنید که آیا پاسخ شما صحیح است: 111001 = 2^0 + 2^3 + 2^4 + 2^5 = 1 + 8 + 16 + 32 = 57.

    دومی که در مسائل کامپیوتری استفاده می شود، هگزادسیمال است. نه ده، بلکه شانزده رقم دارد. برای جلوگیری از قراردادهای جدید، ده رقم اول هگزادسیمال سیستم هایبا اعداد معمولی نشان داده می شوند و شش باقیمانده - با حروف لاتین: A، B، C، D، E، F. آنها با نماد اعشاری مطابقت دارند. شماره m از 10 تا 15. برای جلوگیری از سردرگمی، قبل از یک عدد نوشته شده در هگزادسیمال یک علامت # یا نویسه 0x قرار می گیرد.

    برای شماره گذاری از هگزادسیمال سیستم های، باید هر یک از ارقام آن را در توان متناظر شانزده ضرب کنید و نتایج را اضافه کنید. به عنوان مثال، #11A در نماد اعشاری 10*(16^0) + 1*(16^1) + 1*(16^2) = 10 + 16 + 256 = 282 است.

    ترجمه معکوس از اعشار سیستم هایبه هگزادسیمال با همان روش باقیمانده در باینری انجام می شود. به عنوان مثال، عدد 10000 را در نظر بگیرید. با تقسیم آن بر 16 متوالی و نوشتن باقی مانده، به دست می آید:
    10000/16 = 625 (بقیه 0).
    625/16 = 39 (باقيمانده 1).
    39/16 = 2 (باقی مانده 7).
    2/16 = 0 (باقی مانده 2).
    نتیجه محاسبه عدد هگزادسیمال #2710 خواهد بود.
    پاسخ خود را بررسی کنید: #2710 = 1*(16^1) + 7*(16^2) + 2*(16^3) = 16 + 1792 + 8192 = 10000.

    انتقال شمارهاز هگزادسیمال سیستم هایباینری خیلی راحت تره عدد 16 یک دو است: 16 = 2^4. بنابراین، هر رقم هگزادسیمال را می توان به صورت یک عدد باینری چهار رقمی نوشت. اگر به صورت باینری کمتر از چهار رقم دریافت کردید، صفرها را به ابتدا اضافه کنید.
    برای مثال، #1F7E = (0001)(1111)(0111)(1110) = 1111101111110.
    بررسی کنید که آیا پاسخ شما صحیح است: هر دو شمارهدر نماد اعشاری 8062 هستند.

    برای ترجمه، باید عدد باینری را به گروه‌های چهار رقمی تقسیم کنید، از انتها شروع کنید، و هر گروه را با یک رقم هگزادسیمال جایگزین کنید.
    به عنوان مثال، 11000110101001 تبدیل به (0011)(0001)(1010)(1001) می شود که در هگزادسیمال #31A9 است. صحت پاسخ با تبدیل به نماد اعشاری تأیید می شود: هر دو شمارهبرابر با 12713 هستند.

    توصیه 5: چگونه یک عدد را به باینری تبدیل کنیم

    به دلیل استفاده محدود از نمادها، سیستم باینری راحت ترین برای استفاده در رایانه ها و سایر دستگاه های دیجیتال است. فقط دو کاراکتر وجود دارد: 1 و 0، بنابراین این سیستمدر رجیسترها استفاده می شود.

    دستورالعمل

    باینری موقعیتی است، یعنی. موقعیت هر رقم در عدد مربوط به یک رقم معین است که در درجه مربوطه برابر با دو است. درجه از صفر شروع می شود و با حرکت از راست به چپ افزایش می یابد. مثلا، عدد 101 برابر است با 1*2^0 + 0*2^1 + 1*2^2 = 5.

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

    عدد اعشاری را تا باینری در نظر بگیرید سیستمروش تقسیم متوالی بر 2. برای ترجمه اعشار عدد 25 اینچ