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

2.3.1. تبدیل اعداد صحیح از یک سیستم عددی به سیستم دیگر

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

1. پایه سیستم اعداد جدید را با اعداد از سیستم اعداد اصلی بیان کنید و تمام اقدامات بعدی را در سیستم اعداد اصلی انجام دهید.

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

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

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

مثال 2.12.عدد اعشاری 173 10 را به سیستم اعداد اکتالی تبدیل کنید:

دریافت می کنیم: 173 10 = 255 8

مثال 2.13.عدد اعشاری 173 10 را به سیستم اعداد هگزادسیمال تبدیل کنید:

دریافت می کنیم: 173 10 = 16 بعد از میلاد.

مثال 2.14.عدد اعشاری 11 10 را به سیستم اعداد باینری تبدیل کنید. راحت تر است که دنباله اقدامات مورد بحث در بالا (الگوریتم ترجمه) را به شرح زیر به تصویر بکشید:

دریافت می کنیم: 11 10 = 1011 2.

مثال 2.15.گاهی اوقات نوشتن الگوریتم ترجمه به شکل جدول راحت تر است. بیایید عدد اعشاری 363 10 را به یک عدد باینری تبدیل کنیم.

تقسیم کننده

دریافت می کنیم: 363 10 = 101101011 2

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

امکان فرموله کردن الگوریتمی برای تبدیل کسر مناسب با پایه وجود دارد ص به کسری با پایه q:

1. پایه سیستم اعداد جدید را با اعداد از سیستم اعداد اصلی بیان کنید و تمام اقدامات بعدی را در سیستم اعداد اصلی انجام دهید.

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

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

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

مثال 2.17.عدد 0.65625 10 را به سیستم اعداد اکتالی تبدیل کنید.

دریافت می کنیم: 0.65625 10 = 0.52 8

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

x 16

دریافت می کنیم: 0.65625 10 = 0.A8 1

مثال 2.18.کسر اعشاری 0.5625 10 را به سیستم اعداد باینری تبدیل کنید.

x 2

x 2

x 2

x 2

دریافت می کنیم: 0.5625 10 = 0.1001 2

مثال 2.19.کسر اعشاری 0.7 10 را به سیستم اعداد باینری تبدیل کنید.

بدیهی است که این روند می تواند به طور نامحدود ادامه یابد و نشانه های جدید بیشتری را در تصویر معادل باینری عدد 0.7 10 ارائه دهد. بنابراین، در چهار مرحله به عدد 0.1011 2 و در هفت مرحله به عدد 0.1011001 2 می رسیم که نمایش دقیق تری از عدد 0.7 10 در سیستم اعداد باینری و غیره است. چنین فرآیند بی پایانی در مرحله ای پایان می یابد. زمانی که اعتقاد بر این است که دقت لازم برای نمایش اعداد به دست آمده است.

2.3.3. ترجمه اعداد دلخواه

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

مثال 2.20. عدد 17.25 10 را به سیستم اعداد باینری تبدیل کنید.

دریافت می کنیم: 17.25 10 = 1001.01 2

مثال 2.21.عدد 124.25 10 را به سیستم هشتی تبدیل کنید.

دریافت می کنیم: 124.25 10 = 174.2 8

2.3.4. تبدیل اعداد از پایه 2 به پایه 2 n و بالعکس

ترجمه اعداد صحیحاگر پایه سیستم اعداد q-ary توان 2 باشد، تبدیل اعداد از سیستم اعداد q-ary به سیستم اعداد 2-ary و بالعکس می تواند طبق قوانین ساده تری انجام شود. برای نوشتن یک عدد باینری عدد صحیح در سیستم اعداد با پایه q=2 n نیاز دارید:

1. عدد باینری را از راست به چپ به گروه های n رقمی تقسیم کنید.

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

مثال 2.22.عدد 101100001000110010 2 به سیستم اعداد هشتگانه تبدیل می شود.

عدد را از راست به چپ به سه تایی تقسیم می کنیم و زیر هر کدام از آنها رقم هشتی مربوطه را می نویسیم:

ما نمایش هشتی عدد اصلی را دریافت می کنیم: 541062 8.

مثال 2.23.عدد 1000000000111110000111 2 به سیستم اعداد هگزادسیمال تبدیل می شود.

عدد را از راست به چپ به تتراد تقسیم می کنیم و زیر هر کدام رقم هگزادسیمال مربوطه را می نویسیم:

ما نمایش هگزادسیمال عدد اصلی را دریافت می کنیم: 200F87 16.

تبدیل اعداد کسریبرای نوشتن یک عدد باینری کسری در یک سیستم اعداد با پایه q=2 n، شما نیاز دارید:

1. عدد باینری را از چپ به راست به گروه های n رقمی تقسیم کنید.

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

3. هر گروه را یک عدد باینری n بیتی در نظر بگیرید و با رقم مربوطه در سیستم اعداد با قاعده q=2 n بنویسید.

مثال 2.24.عدد 0.10110001 2 به سیستم اعداد هشتگانه تبدیل می شود.

عدد را از چپ به راست به سه تایی تقسیم می کنیم و زیر هر کدام از آنها رقم هشتی مربوطه را می نویسیم:

ما نمایش هشتی عدد اصلی را دریافت می کنیم: 0.542 8 .

مثال 2.25.عدد 0.100000000011 2 به سیستم اعداد هگزادسیمال تبدیل می شود. عدد را از چپ به راست به تتراد تقسیم می کنیم و زیر هر کدام رقم هگزادسیمال مربوطه را می نویسیم:

ما نمایش هگزادسیمال عدد اصلی را دریافت می کنیم: 0.803 16

ترجمه اعداد دلخواهبرای نوشتن یک عدد باینری دلخواه در سیستم اعداد با پایه q=2 n، شما نیاز دارید:

1. قسمت صحیح یک عدد باینری معین را از راست به چپ و قسمت کسری را از چپ به راست به گروه های n رقمی تقسیم کنید.

2. اگر آخرین گروه‌های چپ و/یا راست حاوی کمتر از n رقم باشند، باید در سمت چپ و/یا راست با صفر به تعداد ارقام مورد نیاز تکمیل شوند.

3. هر گروه را به عنوان یک عدد باینری n بیتی در نظر بگیرید و آن را با رقم مربوطه در سیستم اعداد با پایه q = 2 n بنویسید.

مثال 2.26.بیایید عدد 111100101.0111 2 را به سیستم اعداد اکتالی تبدیل کنیم.

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

ما نمایش هشتی عدد اصلی را دریافت می کنیم: 745.34 8 .

مثال 2.27.عدد 11101001000,11010010 2 به سیستم اعداد هگزادسیمال تبدیل می شود.

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

ما نمایش هگزادسیمال عدد اصلی را دریافت می کنیم: 748,D2 16.

تبدیل اعداد از سیستم های اعداد با پایه q=2n به باینری.برای تبدیل یک عدد دلخواه نوشته شده در یک سیستم اعداد با پایه q=2 n به یک سیستم اعداد باینری، باید هر رقم این عدد را با معادل n رقمی آن در سیستم اعداد باینری جایگزین کنید.

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

طبق الگوریتم:

ما دریافت می کنیم: 1001010110000110101 2 .

وظایف برای تکمیل مستقل (پاسخ)

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

باینری

هشتی

اعشاری

هگزادسیمال

2.39. جدولی را پر کنید که در هر ردیف آن عدد کسری یکسان در سیستم های اعداد مختلف نوشته شود.

باینری

هشتی

اعشاری

هگزادسیمال

2.40. جدولی را پر کنید که در هر ردیف آن یک عدد دلخواه (عدد می تواند شامل یک عدد صحیح و یک قسمت کسری باشد) باید در سیستم های اعداد مختلف نوشته شود.

باینری

هشتی

اعشاری

هگزادسیمال

59.B

عدد را در سیستم اعداد باینری و توان های دو را از راست به چپ بنویسید.برای مثال می خواهیم عدد باینری 10011011 2 را به اعشار تبدیل کنیم. بیایید ابتدا آن را بنویسیم. سپس توان های دو را از راست به چپ می نویسیم. بیایید با 2 0 شروع کنیم که برابر با "1" است. برای هر عدد بعدی یک درجه افزایش می دهیم. زمانی متوقف می شویم که تعداد عناصر موجود در لیست با تعداد ارقام موجود در عدد باینری برابر باشد. شماره مثال ما، 10011011، دارای هشت رقم است، بنابراین فهرستی از هشت عنصر به این صورت خواهد بود: 128، 64، 32، 16، 8، 4، 2، 1

ارقام عدد دودویی را با توانهای دو بنویسید.حالا به سادگی 10011011 را زیر اعداد 128، 64، 32، 16، 8، 4، 2 و 1 بنویسید، به طوری که هر رقم باینری معادل توان متفاوتی از دو باشد. سمت راست ترین "1" عدد باینری باید با سمت راست ترین "1" از توان های دو مطابقت داشته باشد و غیره. اگر ترجیح می دهید، می توانید عدد باینری را بالای توان دو بنویسید. مهمترین چیز این است که آنها با یکدیگر مطابقت داشته باشند.

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

مقدار نهایی هر توان دو را بنویسید.هر رقم از یک عدد باینری را مرور کنید. اگر عدد 1 است، توان مربوط به دو را زیر عدد بنویسید. اگر این عدد 0 است، زیر عدد 0 بنویسید.

  • از آنجایی که "1" با "1" مطابقت دارد، "1" باقی می ماند. از آنجایی که "2" با "1" مطابقت دارد، "2" باقی می ماند. از آنجایی که "4" با "0" مطابقت دارد، به "0" تبدیل می شود. از آنجایی که «8» با «1» منطبق می شود، «8» می شود و از زمانی که «16» با «1» مطابقت می کند، می شود «16». "32" با "0" منطبق می شود و "0" می شود، "64" با "0" منطبق می شود و بنابراین "0" می شود، در حالی که "128" با "1" منطبق می شود و بنابراین می شود 128.
  • مقادیر به دست آمده را جمع کنید.حالا اعداد به دست آمده را زیر خط اضافه کنید. کاری که باید انجام دهید این است: 128 + 0 + 0 + 16 + 8 + 0 + 2 + 1 = 155. این معادل اعشاری عدد باینری 10011011 است.

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

  • از این روش برای تبدیل یک عدد باینری با اعشار به شکل اعشاری استفاده کنید.حتی اگر بخواهید یک عدد باینری مانند 1.1 2 را به اعشار تبدیل کنید، می توانید از این روش استفاده کنید. تنها چیزی که باید بدانید این است که عدد سمت چپ اعشار یک عدد منظم است و عدد سمت راست اعشار عدد "نصف" یا 1 x (1/2) است.

    • "1" در سمت چپ عدد اعشاری مربوط به 2 0 یا 1 است. 1 در سمت راست عدد اعشاری مربوط به 2 -1 یا.5 است. 1 و 0.5 را با هم جمع کنید و 1.5 می گیرید که معادل اعشار 1.1 2 است.
  • سلام، بازدید کننده سایت! ما به مطالعه پروتکل لایه شبکه 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 = 1 و 1 یک رقم معتبر است. در سیستم اعداد باینری

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

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

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

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

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

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

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

    عملیات منطقی AND یا AND

    عمل منطقی 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.

    عملیات انحصاری OR یا XOR

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

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

    تبدیل اعداد از یک سیستم اعداد موقعیتی به سیستم دیگر: تبدیل اعداد صحیح.

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

    مثال 1. عدد 11(10) را به سیستم اعداد باینری تبدیل کنید.

    پاسخ: 11(10)=1011(2).

    مثال 2. عدد 122 (10) را به سیستم اعداد اکتالی تبدیل کنید.


    جواب: 122(10)=172(8).

    مثال 3. عدد 500(10) را به سیستم اعداد هگزادسیمال تبدیل کنید.


    پاسخ: 500(10)=1F4(16).

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

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

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

    مثال 1. عدد 0.625(10) را به سیستم اعداد باینری تبدیل کنید.


    پاسخ: 0.625 (10) = 0.101 (2).

    مثال 2. عدد 0.6(10) را به سیستم اعداد اکتالی تبدیل کنید.


    پاسخ: 0.6(10)=0.463(8).

    مثال 2. عدد 0.7 (10) را به سیستم اعداد هگزادسیمال تبدیل کنید.


    پاسخ: 0.7(10)=0.B333(16).

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

    برای تبدیل یک عدد از سیستم P-ary به اعشاری، باید از فرمول بسط زیر استفاده کنید:
    anan-1…а1а0=аnPn+ аn-1Pn-1+…+ а1P+a0.

    مثال 1. عدد 101.11(2) را به سیستم اعداد اعشاری تبدیل کنید.

    پاسخ: 101.11 (2) = 5.75 (10) .

    مثال 2. عدد 57.24 (8) را به سیستم اعداد اعشاری تبدیل کنید.

    پاسخ: 57.24 (8) = 47.3125 (10) .

    مثال 3. عدد 7A,84(16) را به سیستم اعداد اعشاری تبدیل کنید.

    پاسخ: 7A.84(16)= 122.515625(10) .


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

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

    مثال: عدد 16.24(8) را در سیستم اعداد باینری بنویسید.


    پاسخ: 16.24(8)= 1110.0101(2) .

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

    مثال: عدد 1110.0101(2) را در سیستم اعداد اکتالی بنویسید.


    پاسخ: 1110.0101(2)= 16.24(8) .

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

    مثال: عدد 7A,7E(16) را در سیستم اعداد باینری بنویسید.


    پاسخ: 7A,7E(16)= 1111010.0111111(2) .

    نکته: صفرهای ابتدایی در سمت چپ برای اعداد صحیح و در سمت راست برای کسری نوشته نمی شوند.

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

    مثال: عدد 1111010.0111111(2) را در سیستم اعداد هگزادسیمال بنویسید.

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

    شماره

    تبدیل از سیستم اعداد 10 2 8 16. تبدیل به سیستم اعداد 2 10 8 16.
    برای اعداد کسری از اعداد اعشاری 2 3 4 5 6 7 8 استفاده کنید.

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

    موارد زیر نیز با این ماشین حساب استفاده می شود:

    راه های نمایش اعداد

    باینری اعداد (دودویی) - هر رقم به معنای مقدار یک بیت (0 یا 1) است، مهمترین بیت همیشه در سمت چپ نوشته می شود، حرف "b" بعد از عدد قرار می گیرد. برای سهولت درک، نوت بوک ها را می توان با فاصله از هم جدا کرد. به عنوان مثال، 1010 0101b.
    هگزادسیمال اعداد (هگزادسیمال) - هر تتراد با یک نماد 0...9، A، B، ...، F نشان داده می شود. این نمایش را می توان به روش های مختلف تعیین کرد رقم به عنوان مثال، A5h. در متون برنامه، بسته به نحو زبان برنامه نویسی، می توان همان عدد را به عنوان 0xA5 یا 0A5h تعیین کرد. یک صفر ابتدایی (0) به سمت چپ مهم ترین رقم هگزا دسیمال که با حرف نشان داده می شود اضافه می شود تا بین اعداد و نام های نمادین تمایز قائل شود.
    اعشاری اعداد (اعشاری) - هر بایت (کلمه، دو کلمه) با یک عدد منظم نشان داده می شود و علامت نمایش دهدهی (حرف "d") معمولا حذف می شود. بایت در مثال های قبلی دارای مقدار اعشاری 165 است. برخلاف نماد دودویی و هگزا دسیمال، اعشار برای تعیین مقدار هر بیت از نظر ذهنی دشوار است، که گاهی اوقات ضروری است.
    هشتی اعداد (هشتی) - هر سه بیت (تقسیم از کمترین معنی شروع می شود) به صورت یک عدد 0-7 نوشته می شود و در پایان یک "o" وجود دارد. همان عدد به صورت 245o نوشته می شود. سیستم اکتال ناخوشایند است زیرا بایت را نمی توان به طور مساوی تقسیم کرد.

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

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

    مثال شماره 1.



    تبدیل از 2 به 8 به 16 سیستم اعداد.
    این سیستم ها مضرب دو هستند، بنابراین ترجمه با استفاده از یک جدول مطابقت انجام می شود (به زیر مراجعه کنید).

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

    مثال شماره 2. 1010111010.1011 = 1.010.111.010.101.1 = 1272.51 8
    اینجا 001=1; 010=2; 111=7; 010=2; 101=5; 001=1

    هنگام تبدیل به سیستم هگزادسیمال، باید با رعایت قوانین مشابه، عدد را به قسمت های چهار رقمی تقسیم کنید.
    مثال شماره 3. 1010111010,1011 = 10.1011.1010،1011 = 2B12،13 HEX
    اینجا 0010=2; 1011=B; 1010=12; 1011=13

    تبدیل اعداد از 2، 8 و 16 به سیستم اعشاری با شکستن عدد به واحدهای جداگانه و ضرب آن در پایه سیستم (که عدد از آن ترجمه شده است) به توان مربوط به شماره سریال آن در عدد در حال تبدیل در این حالت، اعداد در سمت چپ نقطه اعشار (عدد اول 0 شماره گذاری شده است) با افزایش و به سمت راست با کاهش (یعنی با علامت منفی) شماره گذاری می شوند. نتایج به دست آمده با هم جمع می شوند.

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

    1010010.101 2 = 1·2 6 +0·2 5 +1·2 4 +0·2 3 +0·2 2 +1·2 1 +0·2 0 + 1·2 -1 +0·2 - 2 + 1 2 -3 =
    = 64 + 0 + 16 + 0 + 0 + 2 + 0 + 0.5 + 0 + 0.125 = 82.625 10 مثالی از تبدیل سیستم اعداد اعشاری به اعشاری.

    108.5 8 = 1*·8 2 +0·8 1 +8·8 0 + 5·8 -1 = 64+0+8+0.625 = 72.625 10 مثالی از تبدیل سیستم اعداد هگزادسیمال به اعشاری.

    1. 108.5 16 = 1·16 2 +0·16 1 +8·16 0 + 5·16 -1 = 256+0+8+0.3125 = 264.3125 10
      • یک بار دیگر الگوریتم تبدیل اعداد از یک سیستم عددی به PSS دیگر را تکرار می کنیم
      • از سیستم اعداد اعشاری:
      • عدد را بر پایه سیستم اعدادی که ترجمه می شود تقسیم کنید.
    2. هنگام تقسیم یک عدد صحیح از یک عدد باقیمانده را پیدا کنید.
      • تمام باقی مانده های تقسیم را به ترتیب معکوس بنویسید.
      • از سیستم اعداد باینری
        برای تبدیل به سیستم اعداد اعشاری، لازم است مجموع حاصل از پایه 2 را با درجه مربوطه از رقم پیدا کنید.
      • برای تبدیل یک عدد به هشتی، باید عدد را به سه تایی تبدیل کنید.
        به عنوان مثال، 1000110 = 1000 110 = 106 8
    برای تبدیل یک عدد از باینری به هگزادسیمال، باید عدد را به گروه های 4 رقمی تقسیم کنید.به عنوان مثال، 1000110 = 100 0110 = 46 16
    این سیستم موقعیتی نامیده می شود
    جدول مکاتبات سیستم شماره:جدول برای تبدیل به سیستم اعداد هگزادسیمال
    0000 0
    0001 1
    0010 2
    0011 3
    0100 4
    0101 5
    0110 6
    0111 7
    1000 8
    1001 9
    1010 باینری SS
    1011 هگزادسیمال SS
    1100 الف
    1101 ب
    1110 سی
    1111 D

    E