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

    سلام بازدید کننده سایت ما به مطالعه پروتکل لایه شبکه 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 تنها در صورتی نتیجه یک را به ما می دهد که یکی از عملوندها برابر با یک و دومی برابر با صفر باشد. اگر هر دو عملوند صفر باشند، صفر و حتی اگر هر دو عملوند برابر با یک باشند، نتیجه صفر خواهد بود.

    1. شمارش ترتیبی در سیستم های اعداد مختلف.

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

    به منظور یادگیری نحوه ترجمه اعداد از یک سیستم به سیستم دیگر، بیایید درک کنیم که چگونه ضبط متوالی اعداد با استفاده از سیستم اعشاری به عنوان مثال انجام می شود.

    از آنجایی که ما یک سیستم اعداد اعشاری داریم، 10 کاراکتر (رقم) برای ساخت اعداد داریم. شمارش ترتیبی را شروع می کنیم: 0، 1، 2، 3، 4، 5، 6، 7، 8، 9. اعداد تمام شده اند. ظرفیت عدد را افزایش می دهیم و مرتبه پایین را بازنشانی می کنیم: 10. سپس دوباره مرتبه پایین را افزایش می دهیم تا تمام ارقام تمام شود: 11، 12، 13، 14، 15، 16، 17، 18، 19. ترتیب بالا را افزایش دهید. 1 و ترتیب پایین را روی صفر قرار می دهیم: 20. وقتی از همه ارقام برای هر دو رقم استفاده می کنیم (عدد 99 را می گیریم) دوباره ظرفیت رقمی عدد را افزایش می دهیم و ارقام موجود را تنظیم می کنیم: 100. و به همین ترتیب.

    بیایید سعی کنیم همین کار را در سیستم های 2، 3، و 5 انجام دهیم (بیایید نماد سیستم دوم، برای سیستم 3 و غیره را معرفی کنیم):

    0 0 0 0
    1 1 1 1
    2 10 2 2
    3 11 10 3
    4 100 11 4
    5 101 12 10
    6 110 20 11
    7 111 21 12
    8 1000 22 13
    9 1001 100 14
    10 1010 101 20
    11 1011 102 21
    12 1100 110 22
    13 1101 111 23
    14 1110 112 24
    15 1111 120 30

    اگر سیستم اعداد دارای پایه بزرگتر از 10 باشد، باید کاراکترهای اضافی وارد کنیم، مرسوم است که حروف الفبای لاتین را وارد کنیم. به عنوان مثال، برای سیستم هگزادسیمال، علاوه بر ده رقم، به دو حرف (و) نیاز داریم:

    0 0
    1 1
    2 2
    3 3
    4 4
    5 5
    6 6
    7 7
    8 8
    9 9
    10
    11
    12 10
    13 11
    14 12
    15 13

    2. انتقال از سیستم اعداد اعشاری به هر سیستم دیگر.

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

    مثال 1بیایید عدد اعشاری 46 را به سیستم اعداد باینری ترجمه کنیم.

    مثال 2بیایید عدد اعشاری 672 را به سیستم اعداد اکتالی ترجمه کنیم.

    مثال 3بیایید عدد اعشاری 934 را به سیستم اعداد هگزادسیمال ترجمه کنیم.

    3. ترجمه از هر سیستم عددی به اعشاری.

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

    در سایر سیستم های اعداد نیز وضعیت دقیقاً به همین منوال است، فقط ما نه در 10، 100 و غیره بلکه در درجه پایه سیستم اعداد ضرب خواهیم کرد. برای مثال، بیایید عدد 1201 را در سیستم اعداد سه تایی در نظر بگیریم. ارقام را از راست به چپ با شروع از صفر شماره گذاری می کنیم و عدد خود را به صورت مجموع حاصلضرب یک رقم در سه برابر درجه یک رقم عددی نشان می دهیم:

    این نماد اعشاری عدد ما است، یعنی.

    مثال 4بیایید عدد اکتال 511 را به سیستم اعداد اعشاری تبدیل کنیم.

    مثال 5بیایید عدد هگزادسیمال 1151 را به سیستم اعداد اعشاری تبدیل کنیم.

    4. انتقال از یک سیستم باینری به یک سیستم با پایه "قدرت دو" (4، 8، 16، و غیره).

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

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

    نحوه ساخت جدول مکاتبات را در بند 1 یاد گرفتیم.

    0 0
    1 1
    10 2
    11 3
    100 4
    101 5
    110 6
    111 7

    آن ها

    مثال 6بیایید عدد باینری 1100001111010110 را به سیستم هگزادسیمال تبدیل کنیم.

    0 0
    1 1
    10 2
    11 3
    100 4
    101 5
    110 6
    111 7
    1000 8
    1001 9
    1010 آ
    1011 ب
    1100 سی
    1101 D
    1110 E
    1111 اف

    5. انتقال از یک سیستم با پایه "قدرت دو" (4، 8، 16، و غیره) به باینری.

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

    مثال 7بیایید عدد هگزادسیمال C3A6 را به سیستم اعداد باینری ترجمه کنیم.

    برای انجام این کار، هر رقم از عدد را با یک گروه 4 رقمی (زیرا ) از جدول مطابقت جایگزین می کنیم و در صورت لزوم گروه را با صفر در ابتدا تکمیل می کنیم:



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

    جدول 1 - نمایش اعداد در سیستم های مختلف
    حساب دیفرانسیل و انتگرال (شروع)

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

    اعشاری

    دودویی

    هشتی

    هگزادسیمال

    اعشاری باینری

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

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

    گام به گام: 37 یک عدد فرد است، بنابراین 1 ، سپس 36/2 = 18. عدد زوج است، پس 0. 18/2 = 9 یک عدد فرد است، بنابراین 1 ، سپس 8/2 = 4. عدد زوج است، 0 بشمارید. 4/2 = 2، یک عدد زوج به معنای 0، 2/2 = 1 است.

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

    2) اما راه دومی وجود دارد. من او را بیشتر دوست دارم. انتقال از یک سیستم به سیستم دیگر به شرح زیر است:

    جایی که ai رقم i-ام عدد است.
    k - تعداد ارقام در قسمت کسری عدد؛
    m - تعداد ارقام در قسمت صحیح عدد؛
    N پایه سیستم اعداد است.

    پایه سیستم اعداد N نشان می دهد که چند برابر "وزن" رقم i از "وزن" (i-1) رقم بزرگتر است. قسمت صحیح عدد با یک نقطه (کاما) از قسمت کسری جدا می شود.

    قسمت صحیح عدد AN1 با پایه N1 با تقسیم متوالی قسمت صحیح عدد AN1 بر پایه N2 که به صورت عددی با پایه N1 نوشته شده است به سیستم اعداد با پایه N2 تبدیل می شود تا باقیمانده کسر حاصل مجدداً بر پایه N2 تقسیم می شود و لازم است این فرآیند تا زمانی که ذره کوچکتر از مقسوم علیه شود تکرار شود. باقیمانده حاصل از تقسیم و قسمت آخر به ترتیب معکوس به دست آمده در حین تقسیم نوشته می شود. عدد تولید شده یک عدد صحیح با پایه N2 خواهد بود.

    قسمت کسری عدد AN1 با پایه N1 با ضرب متوالی قسمت کسری عدد AN1 در پایه N2 که به صورت عددی با پایه N1 نوشته می شود به سیستم اعداد با پایه N2 تبدیل می شود. با هر ضرب، قسمت صحیح حاصلضرب به عنوان رقم بعدی رقم مربوطه و قسمت کسری باقی مانده به عنوان یک ضرب جدید در نظر گرفته می شود. تعداد ضرب ها ظرفیت نتیجه به دست آمده را تعیین می کند که نشان دهنده بخش کسری عدد AN1 در سیستم اعداد N2 است. قسمت کسری یک عدد هنگام ترجمه اغلب نادرست نشان داده می شود.

    بیایید با یک مثال این کار را انجام دهیم:

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

    37 در اعشار باید به باینری تبدیل شود. بیایید با مدرک کار کنیم:

    2 0 = 1
    2 1 = 2
    2 2 = 4
    2 3 = 8
    2 4 = 16
    2 5 = 32
    2 6 = 64
    2 7 = 128
    2 8 = 256
    2 9 = 512
    2 10 = 1024 و به همین ترتیب... ad infinitum

    بنابراین: 37 - 32 \u003d 5. 5 - 4 \u003d 1. پاسخ به صورت باینری به شرح زیر است: 100101.

    بیایید عدد 658 را از اعشار به باینری تبدیل کنیم:

    658-512=146
    146-128=18
    18-16=2. در باینری، عدد به صورت زیر خواهد بود: 1010010010.

    تبدیل اعشاری به هشتی

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

    از اعشار به هگزادسیمال تبدیل کنید

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

    تبدیل باینری به اکتال

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

    برای مثال، عدد حاصل 1010010010 به سه عدد تقسیم می‌شود و تجزیه از راست به چپ می‌رود: 1 010 010 010 = 1222. جدول را در همان ابتدا ببینید.

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

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

    10 1001 0010 = 292

    در اینجا چند نمونه برای شما آورده شده است تا بررسی کنید:

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

    (2) = 11101110
    (8) = 11 101 110 = 276
    (16) = 1110 1110 = EE
    (10) = 1*128+ 1*64+ 1*32+ 0 +1*8 + 1*4 + 1*2+ 0= 238
    3) (8) = 657

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

    (16) = 6E8
    (2) = 110 1110 1000
    (8) = 11 011 101 000 = 2250
    (10) = 1*1024+1*512+ 0 +1*128+ 1*64+ 1*32+ 8 = 1768

    نتیجه قبلاً دریافت شده است!

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

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

    سپس عدد 6372 را می توان به صورت زیر نشان داد:

    6372=6000+300+70+2 =6 10 3 +3 10 2 +7 10 1 +2 10 0 .

    عدد 10 سیستم اعداد را تعریف می کند (در این مورد 10 است). مقادیر موقعیت عدد داده شده به عنوان درجه در نظر گرفته می شود.

    عدد اعشاری واقعی 1287.923 را در نظر بگیرید. آن را با شروع از موقعیت صفر عدد از نقطه اعشار به سمت چپ و به راست شماره گذاری می کنیم:

    سپس عدد 1287.923 را می توان به صورت زیر نشان داد:

    1287.923 =1000+200+80 +7+0.9+0.02+0.003 = 1 10 3 +2 10 2 +8 10 1 +7 10 0 +9 10 -1 +2 10 -2 +3 10 -3 .

    به طور کلی، فرمول را می توان به صورت زیر نشان داد:

    C n س n + C n-1 س n-1 +...+C 1 س 1 + C 0 s 0 + D -1 s -1 + D -2 s -2 + ... + D -k s -k

    که در آن C n یک عدد صحیح در موقعیت است n، D -k - عدد کسری در موقعیت (-k)، س- سیستم شماره

    چند کلمه در مورد سیستم های اعداد یک عدد در سیستم اعداد اعشاری از مجموعه ای از ارقام (0،1،2،3،4،5،6،7،8،9) تشکیل شده است، در سیستم اعداد اکتال از آن تشکیل شده است. مجموعه ای از ارقام (0،1، 2،3،4،5،6،7)، در سیستم باینری - از مجموعه ارقام (0.1)، در سیستم اعداد هگزادسیمال - از مجموعه ارقام (0، 1،2،3،4،5،6، 7،8،9،A،B،C،D،E،F)، که در آن A،B،C،D،E،F با اعداد 10،11 مطابقت دارد، 12،13،14،15 در جدول 1 اعداد در سیستم های اعداد مختلف نشان داده شده اند.

    میز 1
    نشانه گذاری
    10 2 8 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 اف

    تبدیل اعداد از یک سیستم اعداد به سیستم دیگر

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

    تبدیل اعداد از هر سیستم عددی به سیستم عددی اعشاری

    با استفاده از فرمول (1)، می توانید اعداد را از هر سیستم عددی به سیستم اعشاری تبدیل کنید.

    مثال 1. عدد 1011101.001 را از سیستم اعداد باینری (SS) به SS اعشاری تبدیل کنید. راه حل:

    1 2 6 + 0 2 5 + 1 2 4 + 1 2 3 + 1 2 2 + 0 2 1 + 1 2 0 + 0 2 -1 + 0 2 -2 + 1 2 -3 =64+16+8+4+1+1/8=93.125

    مثال2. عدد 1011101.001 را از سیستم اعداد هشتگانه (SS) به SS اعشاری تبدیل کنید. راه حل:

    مثال 3 . عدد AB572.CDF را از هگزادسیمال به SS اعشاری تبدیل کنید. راه حل:

    اینجا آ 10 جایگزین شد، ب- ساعت 11 سی- در ساعت 12، اف- ساعت 15

    تبدیل اعداد از سیستم اعداد اعشاری به سیستم عددی دیگر

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

    قسمت صحیح عدد از SS اعشاری به سیستم اعداد دیگری ترجمه می شود - با تقسیم متوالی قسمت صحیح عدد بر پایه سیستم اعداد (برای SS باینری - بر 2، برای SS 8 رقمی - بر 8، برای 16 رقم - توسط 16 و غیره) برای به دست آوردن کل باقیمانده، کمتر از پایه SS.

    مثال 4 . بیایید عدد 159 را از SS اعشاری به SS باینری ترجمه کنیم:

    159 2
    158 79 2
    1 78 39 2
    1 38 19 2
    1 18 9 2
    1 8 4 2
    1 4 2 2
    0 2 1
    0

    همانطور که در شکل دیده میشود. 1، عدد 159، وقتی بر 2 تقسیم می شود، ضریب 79 و باقیمانده 1 می شود. علاوه بر این، عدد 79، وقتی بر 2 تقسیم می شود، ضریب 39 و باقیمانده 1 می شود و غیره. در نتیجه، با ساختن یک عدد از باقیمانده تقسیم (از راست به چپ)، یک عدد در SS باینری بدست می آوریم: 10011111 . بنابراین، می توانیم بنویسیم:

    159 10 =10011111 2 .

    مثال 5 . بیایید عدد 615 را از SS اعشاری به SS هشتی تبدیل کنیم.

    615 8
    608 76 8
    7 72 9 8
    4 8 1
    1

    هنگام تبدیل یک عدد از SS اعشاری به SS هشتی، باید عدد را به ترتیب بر 8 تقسیم کنید تا زمانی که باقیمانده عدد صحیح کمتر از 8 به دست آید. در نتیجه، یک عدد از باقیمانده تقسیم (از راست به چپ) می سازیم. یک عدد در SS octal بدست آورید: 1147 (شکل 2 را ببینید). بنابراین، می توانیم بنویسیم:

    615 10 =1147 8 .

    مثال 6 . بیایید عدد 19673 را از سیستم اعداد اعشاری به SS هگزادسیمال ترجمه کنیم.

    19673 16
    19664 1229 16
    9 1216 76 16
    13 64 4
    12

    همانطور که از شکل 3 مشاهده می شود، با تقسیم متوالی عدد 19673 بر 16، باقیمانده های 4، 12، 13، 9 را به دست می آوریم. عدد هگزادسیمال ما 4CD9 است.

    برای تبدیل کسرهای اعشاری صحیح (یک عدد واقعی با یک عدد صحیح صفر) به یک سیستم اعداد با پایه s، این عدد باید به طور متوالی در s ضرب شود تا قسمت کسری به صفر خالص برسد، یا تعداد ارقام لازم را بدست آوریم. اگر حاصل ضرب عددی با جزء صحیح غیر از صفر باشد، این قسمت صحیح در نظر گرفته نمی شود (آنها به ترتیب در نتیجه گنجانده می شوند).

    بیایید با مثال به موارد بالا نگاه کنیم.

    مثال 7 . بیایید عدد 0.214 را از سیستم اعشاری به SS باینری ترجمه کنیم.

    0.214
    ایکس 2
    0 0.428
    ایکس 2
    0 0.856
    ایکس 2
    1 0.712
    ایکس 2
    1 0.424
    ایکس 2
    0 0.848
    ایکس 2
    1 0.696
    ایکس 2
    1 0.392

    همانطور که از شکل 4 مشاهده می شود، عدد 0.214 به صورت متوالی در 2 ضرب می شود. و عدد با یک عدد صحیح صفر نوشته می شود. اگر با ضرب عددی با جزء صحیح صفر به دست آید، در سمت چپ آن صفر نوشته می شود. فرآیند ضرب تا زمانی ادامه می یابد که در قسمت کسری یک صفر خالص به دست آید یا تعداد ارقام لازم به دست آید. با نوشتن اعداد پررنگ (شکل 4) از بالا به پایین، عدد مورد نیاز را در سیستم باینری بدست می آوریم: 0. 0011011 .

    بنابراین، می توانیم بنویسیم:

    0.214 10 =0.0011011 2 .

    مثال 8 . بیایید عدد 0.125 را از سیستم اعداد اعشاری به SS باینری ترجمه کنیم.

    0.125
    ایکس 2
    0 0.25
    ایکس 2
    0 0.5
    ایکس 2
    1 0.0

    برای تبدیل عدد 0.125 از SS اعشاری به باینری این عدد به صورت متوالی در 2 ضرب می شود در مرحله سوم 0 به دست آمد بنابراین نتیجه زیر به دست آمد:

    0.125 10 =0.001 2 .

    مثال 9 . بیایید عدد 0.214 را از سیستم اعداد اعشاری به SS هگزادسیمال ترجمه کنیم.

    0.214
    ایکس 16
    3 0.424
    ایکس 16
    6 0.784
    ایکس 16
    12 0.544
    ایکس 16
    8 0.704
    ایکس 16
    11 0.264
    ایکس 16
    4 0.224

    به دنبال مثال های 4 و 5، اعداد 3، 6، 12، 8، 11، 4 را به دست می آوریم. اما در SS هگزادسیمال، اعداد C و B با اعداد 12 و 11 مطابقت دارند. بنابراین، داریم:

    0.214 10 = 0.36C8B4 16.

    مثال 10 . بیایید عدد 0.512 را از سیستم اعداد اعشاری به SS هشتی ترجمه کنیم.

    0.512
    ایکس 8
    4 0.096
    ایکس 8
    0 0.768
    ایکس 8
    6 0.144
    ایکس 8
    1 0.152
    ایکس 8
    1 0.216
    ایکس 8
    1 0.728

    بدست آورد:

    0.512 10 =0.406111 8 .

    مثال 11 . بیایید عدد 159.125 را از سیستم اعداد اعشاری به SS باینری ترجمه کنیم. برای این کار، قسمت صحیح عدد (مثال 4) و قسمت کسری عدد (مثال 8) را جداگانه ترجمه می کنیم. با ترکیب این نتایج بدست می آوریم:

    159.125 10 =10011111.001 2 .

    مثال 12 . بیایید عدد 19673.214 را از سیستم اعداد اعشاری به SS هگزادسیمال ترجمه کنیم. برای این کار، قسمت صحیح عدد (مثال 6) و قسمت کسری عدد (مثال 9) را جداگانه ترجمه می کنیم. با ترکیب بیشتر این نتایج به دست می آوریم.

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

    1. برای تبدیل یک عدد دودویی به اعشاری باید آن را به صورت چندجمله ای متشکل از حاصل ضرب ارقام عدد و توان متناظر عدد 2 بنویسیم و طبق قواعد حساب اعشاری محاسبه کنیم:

    هنگام ترجمه، استفاده از جدول قدرت های دو راحت است:

    جدول 4. توان های 2

    n (درجه)

    مثال.

    2. برای تبدیل یک عدد اکتال به اعشار، باید آن را به صورت چند جمله ای متشکل از حاصل ضرب ارقام عدد و توان متناظر عدد 8 بنویسیم و بر اساس قواعد حساب اعشاری محاسبه کنیم:

    هنگام ترجمه، استفاده از جدول توان های هشت راحت است:

    جدول 5. توان های 8

    n (درجه)

    مثال.تبدیل عدد به سیستم اعداد اعشاری.

    3. برای تبدیل یک عدد هگزا دسیمال به اعشار، باید آن را به صورت چند جمله ای متشکل از حاصل ضرب ارقام عدد و توان متناظر عدد 16 بنویسیم و بر اساس قواعد حساب اعشاری محاسبه کنیم:

    هنگام ترجمه، استفاده از آن راحت است بلیتز از قدرت های 16:

    جدول 6. توان های 16

    n (درجه)

    مثال.تبدیل عدد به سیستم اعداد اعشاری.

    4. برای تبدیل یک عدد اعشاری به سیستم دودویی، باید آن را متوالی بر 2 تقسیم کرد تا زمانی که باقیمانده ای کمتر یا مساوی 1 باقی بماند. یک عدد در سیستم باینری به عنوان دنباله ای از آخرین نتیجه تقسیم نوشته می شود و باقیمانده تقسیم به ترتیب معکوس

    مثال.تبدیل عدد به سیستم اعداد باینری

    5. برای تبدیل یک عدد اعشاری به سیستم هشتی، باید متوالی بر 8 تقسیم شود تا زمانی که باقیمانده ای کمتر یا مساوی 7 باقی بماند. یک عدد در سیستم هشتی به صورت دنباله ای از ارقام آخرین نتیجه تقسیم نوشته می شود. و بقیه تقسیم به ترتیب معکوس.

    مثال.تبدیل عدد به سیستم اعداد هشتگانه.

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

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