کد باینری به متن نوشتن متن با کد باینری (نوشتن حروف با کد باینری) کد باینری آنلاین

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

بر خلاف کدگذاری اعشاری اعداد که برای ما آشناست، یعنی یک کد با پایه ده، با کدگذاری دودویی، پایه کد عدد دو است (شکل 2.9). یعنی هر رقم کد (هر رقم) یک کد باینری نمی تواند ده مقدار را بگیرد (مانند کد اعشاری: 0، 1، 2، 3، 4، 5، 6، 7، 8، 9)، بلکه فقط دو - 0 و 1. سیستم ثبت موقعیتی ثابت می ماند، یعنی کمترین رقم در سمت راست و مهم ترین رقم در سمت چپ نوشته شده است. اما اگر در سیستم اعشاری وزن هر رقم بعدی ده برابر بیشتر از وزن قبلی باشد، در سیستم باینری (با کدگذاری باینری) دو برابر بزرگتر است. هر بیت کد باینری یک بیت نامیده می شود (از انگلیسی "Binary Digit" - "شماره باینری").

برنج. 2.9.کدگذاری اعشاری و باینری

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

جدول نشان می دهد که تعداد بیت های کد باینری مورد نیاز به طور قابل توجهی بیشتر از تعداد بیت های کد اعشاری لازم است. حداکثر عدد ممکن با تعداد ارقام برابر با سه در سیستم اعشاری 999 و در سیستم باینری فقط 7 است (یعنی 111 در کد باینری). به طور کلی، یک عدد باینری n بیتی می تواند 2n مقدار مختلف و یک عدد اعشاری n بیتی می تواند 10n مقدار متفاوت داشته باشد. یعنی نوشتن اعداد باینری بزرگ (با بیش از ده رقم) خیلی راحت نمی شود.

جدول 2.3. مطابقت بین اعداد در سیستم های اعشاری و باینری
سیستم اعشاری سیستم دودویی سیستم اعشاری سیستم دودویی

به منظور ساده سازی ثبت اعداد باینری، به اصطلاح سیستم هگزا دسیمال (کدگذاری هگزا دسیمال) پیشنهاد شد. در این حالت، تمام بیت‌های باینری به گروه‌های چهار بیتی (با کم‌اهمیت‌ترین بیت شروع می‌شوند) تقسیم می‌شوند و سپس هر گروه با یک نماد کدگذاری می‌شود. هر یک از این گروه ها نامیده می شود نیش زدن(یا نیش زدن, نوت بوک، و دو گروه (8 بیت) - بایت. از روی میز 2.3 نشان می دهد که یک عدد باینری 4 بیتی می تواند 16 مقدار مختلف (از 0 تا 15) بگیرد. بنابراین، تعداد کاراکترهای مورد نیاز برای یک کد هگزادسیمال نیز 16 است، از این رو نام این کد است. 10 کاراکتر اول اعداد 0 تا 9 هستند و سپس از 6 حرف بزرگ اولیه الفبای لاتین استفاده می شود: A, B, C, D, E, F.

برنج. 2.10.نمادگذاری باینری و هگزادسیمال اعداد

روی میز 2.4 نمونه هایی از رمزگذاری هگزادسیمال 20 عدد اول را نشان می دهد (اعداد باینری در داخل پرانتز آورده شده است) و شکل. شکل 2.10 نمونه ای از نوشتن یک عدد باینری به شکل هگزادسیمال را نشان می دهد. برای نشان دادن رمزگذاری هگزادسیمال، گاهی اوقات از حرف "h" یا "H" (از انگلیسی هگزادسیمال) در انتهای یک عدد استفاده می شود، به عنوان مثال، ورودی A17F h نشان دهنده عدد هگزادسیمال A17F است. در اینجا A1 نشان دهنده بایت بالای عدد و 7F بایت پایین عدد است. کل عدد (در مورد ما یک عدد دو بایتی) فراخوانی می شود در یک کلمه.

جدول 2.4. سیستم کدگذاری هگزادسیمال
سیستم اعشاری سیستم هگزادسیمال سیستم اعشاری سیستم هگزادسیمال
0 (0) A (1010)
1(1) B (1011)
2 (10) C (1100)
3 (11) D (1101)
4 (100) E (1110)
5 (101) F (1111)
6 (110) 10 (10000)
7 (111) 11 (10001)
8 (1000) 12 (10010)
9 (1001) 13 (10011)

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

A17F=F*16 0 + 7*16 1 + 1*16 2 + A*16 3 = 15*1 + 7*16+1*256+10*4096=41343

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

علاوه بر کدهای مورد بحث، به اصطلاح نمایش دودویی-اعشاری اعداد نیز وجود دارد. همانطور که در کد هگزا دسیمال، در کد BCD، هر رقم از کد مربوط به چهار رقم باینری است، با این حال، هر گروه از چهار رقم باینری می تواند نه شانزده، بلکه تنها ده مقدار داشته باشد که توسط کاراکترهای 0، 1، 2، 3، 4 رمزگذاری شده است. ، 5، 6، 7، 8، 9. یعنی یک رقم اعشار مربوط به چهار عدد باینری است. در نتیجه، معلوم می شود که نوشتن اعداد در کد اعشاری باینری با نوشتن آنها در کد اعشاری معمولی تفاوتی ندارد (جدول 2.6)، اما در واقع فقط یک کد باینری خاص است که هر رقم آن می تواند تنها دو مقدار را بگیرد: 0 و 1. کد BCD گاهی اوقات برای سازماندهی نشانگرهای دیجیتال اعشاری و تابلوهای امتیاز بسیار مناسب است.

جدول 2.6. سیستم کدگذاری اعشاری باینری
سیستم اعشاری سیستم اعشاری دودویی سیستم اعشاری سیستم اعشاری دودویی
0 (0) 10 (1000)
1(1) 11 (1001)
2 (10) 12 (10010)
3 (11) 13 (10011)
4 (100) 14 (10100)
5 (101) 15 (10101)
6 (110) 16 (10110)
7 (111) 17 (10111)
8 (1000) 18 (11000)
9 (1001) 19 (11001)

در کد باینری، می توانید هر عملیات حسابی را روی اعداد انجام دهید: جمع، تفریق، ضرب، تقسیم.

به عنوان مثال، اضافه کردن دو عدد باینری 4 بیتی را در نظر بگیرید. اجازه دهید عدد 0111 (اعشار 7) و 1011 (اعشار 11) را اضافه کنیم. اضافه کردن این اعداد دشوارتر از نماد اعشاری نیست:

وقتی 0 و 0 را جمع می کنیم 0 می گیریم، با جمع 1 و 0 1 می گیریم، با جمع 1 و 1 0 می گیریم و به رقم بعدی 1 می بریم. نتیجه 10010 (اعشار 18) است. افزودن هر دو عدد باینری n بیتی می تواند منجر به یک عدد n بیتی یا یک عدد (n+1) بیتی شود.

تفریق نیز به همین ترتیب انجام می شود. بگذارید عدد 0111 (7) از عدد 10010 (18) کم شود. اعدادی را که با کمترین رقم قابل توجه تراز شده اند می نویسیم و مانند سیستم اعشاری از آن کم می کنیم:

با تفریق 0 از 0، 0، با تفریق 0 از 1، 1، با تفریق 1 از 1، 0، با تفریق 1 از 0، 1 دریافت می کنیم و 1 را در رقم بعدی قرض می کنیم. نتیجه 1011 است (اعشار 11).

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

برای نمایش همزمان اعداد مثبت و منفی دودویی، به اصطلاح کد مکمل دو اغلب استفاده می شود. اعداد منفی در این کد با عددی نشان داده می شوند که با اضافه شدن به عدد مثبتی با همان مقدار، صفر می شود. برای به دست آوردن یک عدد منفی، باید تمام بیت های همان عدد مثبت را به بیت های مقابل تغییر دهید (0 به 1، 1 به 0) و به عنوان مثال عدد 5 را بنویسید. عدد 5 در کد باینری شبیه 0101 است. بیت ها را با بیت های مقابل جایگزین می کنیم: 1010 و یکی را اضافه می کنیم: 1011. نتیجه را با عدد اصلی جمع می کنیم: 1011 + 0101 = 0000 (انتقال به رقم پنجم را نادیده می گیریم) .

اعداد منفی در کد مکمل دو از اعداد مثبت با ارزش مهم‌ترین رقم متمایز می‌شوند: یک رقم در مهم‌ترین رقم یک عدد منفی را تعریف می‌کند و یک عدد صفر یک عدد مثبت را تعریف می‌کند.

علاوه بر عملیات حسابی استاندارد، سیستم اعداد باینری از برخی عملیات خاص نیز استفاده می کند، به عنوان مثال، مدول جمع 2. این عملیات (که با A مشخص می شود) به صورت بیتی است، یعنی هیچ انتقالی از یک رقم به رقم دیگر وجود ندارد و هیچ وام گیری در آن وجود ندارد. بالاترین ارقام قوانین اضافه کردن مدول 2 به شرح زیر است: , , . به همین عملیات تابع می گویند انحصاری OR. برای مثال، بیایید دو عدد باینری 0111 و 1011 را مدول 2 جمع کنیم:

سایر عملیات بیتی روی اعداد باینری عبارتند از تابع AND و تابع OR. تابع AND تنها در صورتی به یک منجر می شود که بیت های متناظر دو عدد اصلی هر دو یک باشند، در غیر این صورت نتیجه -0 است. وقتی حداقل یکی از بیت های متناظر اعداد اصلی 1 باشد، تابع OR یک نتیجه می دهد، در غیر این صورت نتیجه 0 است.

معنای اصطلاح "دودویی" این است که از دو بخش یا جزء تشکیل شده است. بنابراین، کدهای باینری کدهایی هستند که فقط از دو حالت نمادین مانند سیاه یا سفید، روشن یا تاریک، هادی یا عایق تشکیل شده اند. کد باینری در فناوری دیجیتال روشی برای نمایش داده ها (اعداد، کلمات و غیره) به صورت ترکیبی از دو کاراکتر است که می تواند به صورت 0 و 1 تعیین شود. کاراکترها یا واحدهای BC را بیت می نامند. یکی از توجیهات استفاده از BC، سادگی و قابل اعتماد بودن ذخیره سازی اطلاعات در هر محیطی به شکل ترکیبی از دو حالت فیزیکی آن است، به عنوان مثال، به شکل تغییر یا ثبات شار نور در زمانی که خواندن از روی دیسک کد نوری
امکان های مختلفی برای رمزگذاری اطلاعات وجود دارد.

کد باینری

در فناوری دیجیتال، روشی برای نمایش داده ها (اعداد، کلمات و غیره) به صورت ترکیبی از دو کاراکتر است که می تواند به صورت 0 و 1 تعیین شود. علائم یا واحدهای DC را بیت می نامند.

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

بزرگترین عددی که می توان به صورت دودویی بیان کرد به تعداد ارقام استفاده شده بستگی دارد، یعنی. بر روی تعداد بیت های ترکیبی که عدد را بیان می کند. به عنوان مثال، برای بیان مقادیر عددی از 0 تا 7، کافی است یک کد 3 رقمی یا 3 بیتی داشته باشید:

مقدار عددی کد باینری
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111

از اینجا می‌توانیم ببینیم که برای یک عدد بزرگتر از 7 با یک کد 3 رقمی دیگر ترکیب کدهای 0 و 1 وجود ندارد.

با حرکت از اعداد به کمیت های فیزیکی، اجازه دهید بیانیه فوق را به شکل کلی تر فرموله کنیم: بیشترین تعداد مقادیر m از هر کمیت (دما، ولتاژ، جریان و غیره) که می تواند در کد باینری بیان شود، بستگی دارد. بر روی تعداد بیت های استفاده شده n به عنوان m = 2n. اگر n=3، همانطور که در مثال در نظر گرفته شده است، 8 مقدار از جمله 0 پیشرو دریافت می کنیم.
کد باینری یک کد چند مرحله ای است. این بدان معنی است که هنگام حرکت از یک موقعیت (مقدار) به موقعیت دیگر، چندین بیت می توانند به طور همزمان تغییر کنند. به عنوان مثال، عدد 3 در کد باینری = 011. عدد 4 در کد باینری = 100. بر این اساس، هنگام حرکت از 3 به 4، هر 3 بیت به طور همزمان حالت خود را به عکس تغییر می دهند. خواندن چنین کدی از دیسک کد منجر به این واقعیت می شود که به دلیل انحرافات (تلرانس ها) اجتناب ناپذیر در طول تولید یک دیسک کد، تغییر در اطلاعات هر یک از آهنگ ها به طور جداگانه هرگز به طور همزمان رخ نخواهد داد. این به نوبه خود منجر به این واقعیت می شود که هنگام انتقال از یک عدد به عدد دیگر، اطلاعات نادرست به طور خلاصه ارائه می شود. بنابراین، در طول انتقال فوق الذکر از عدد 3 به عدد 4، خروجی کوتاه مدت عدد 7 بسیار محتمل است، به عنوان مثال، زمانی که مهم ترین بیت در طول انتقال مقدار خود را کمی زودتر از بقیه تغییر داده است. . برای جلوگیری از این امر، از یک کد به اصطلاح یک مرحله ای استفاده می شود، به عنوان مثال به اصطلاح کد خاکستری.

کد خاکستری

کد خاکستری یک کد به اصطلاح یک مرحله ای است، یعنی. هنگام انتقال از یک عدد به عدد دیگر، تنها یکی از تمام بیت های اطلاعات همیشه تغییر می کند. یک خطا در هنگام خواندن اطلاعات از یک دیسک کد مکانیکی هنگام حرکت از یک عدد به عدد دیگر تنها منجر به این واقعیت می شود که انتقال از یک موقعیت به موقعیت دیگر فقط اندکی در زمان جابجا می شود، اما صدور یک مقدار موقعیت زاویه ای کاملاً نادرست هنگامی که حرکت از یک موقعیت به موقعیت دیگر به طور کامل حذف می شود.
یکی دیگر از مزایای Gray Code توانایی آن در بازتاب اطلاعات است. بنابراین، با معکوس کردن مهم ترین بیت، می توانید به سادگی جهت شمارش را تغییر دهید و در نتیجه جهت واقعی (فیزیکی) چرخش محور را مطابقت دهید. تغییر جهت شمارش به این روش را می توان به راحتی با کنترل ورودی به اصطلاح "مکمل" تغییر داد. بنابراین مقدار خروجی می تواند برای همان جهت فیزیکی چرخش محور افزایش یا کاهش یابد.
از آنجایی که اطلاعات بیان شده در کد خاکستری صرفاً در طبیعت رمزگذاری شده است و اطلاعات عددی واقعی را حمل نمی کند، ابتدا باید قبل از پردازش بیشتر به یک کد باینری استاندارد تبدیل شود. این کار با استفاده از یک مبدل کد (رمزگشا Gray-Binar) انجام می شود که خوشبختانه با استفاده از مداری از عناصر منطقی انحصاری یا (XOR) هم در نرم افزار و هم در سخت افزار به راحتی پیاده سازی می شود.

اعداد اعشاری مربوطه در محدوده 0 تا 15 تا کدهای باینری و خاکستری

کدگذاری باینری کد نویسی خاکستری
کد اعشاری
مقدار باینری شانزده معنی کد اعشاری مقدار باینری شانزده معنی
0 0000 0 ساعت 0 0000 0 ساعت
1 0001 1 ساعت 1 0001 1 ساعت
2 0010 2 ساعت 3 0011 3 ساعت
3 0011 3 ساعت 2 0010 2 ساعت
4 0100 4 ساعت 6 0110 6 ساعت
5 0101 5 ساعت 7 0111 7 ساعت
6 0110 6 ساعت 5 0101 5 ساعت
7 0111 7 ساعت 4 0100 4 ساعت
8 1000 8 ساعت 12 1100 چ
9 1001 ساعت 9 13 1101 Dh
10 1010 آه 15 1111 Fh
11 1011 Bh 14 1110 هه
12 1100 چ 10 1010 آه
13 1101 Dh 11 1011 Bh
14 1110 هه 9 1001 ساعت 9
15 1111 Fh 8 1000 8 ساعت

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

کد خاکستری-زیاد

کد معمولی یک مرحله‌ای Gray برای وضوح‌هایی مناسب است که می‌توان آنها را به صورت عددی به توان ۲ نشان داد. در مواردی که نیاز به پیاده‌سازی مجوزهای دیگر باشد، بخش میانی از کد Grey معمولی بریده شده و استفاده می‌شود. به این ترتیب کد "یک مرحله ای" باقی می ماند. با این حال، محدوده عددی از صفر شروع نمی شود، بلکه با مقدار مشخصی جابجا می شود. هنگام پردازش اطلاعات، نیمی از تفاوت بین وضوح اصلی و کاهش یافته از سیگنال تولید شده کم می شود. رزولوشن هایی مثل 360؟ برای بیان یک زاویه اغلب با این روش اجرا می شوند. بنابراین یک کد خاکستری 9 بیتی برابر با 512 مرحله، که از هر دو طرف با 76 مرحله بریده شده است، برابر با 360 درجه خواهد بود.

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

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

شمارش در قالب باینری

در بیان دودویی، رقم اول معادل 1 در سیستم اعشاری است. رقم دوم 2، سومی 4، چهارمی 8، و به همین ترتیب - هر بار دو برابر می شود. با افزودن تمام این مقادیر، عدد در قالب اعشاری به شما ارائه می شود.

1111 (در دودویی) = 8 + 4 + 2 + 1 = 15 (به صورت اعشاری)

محاسبه 0 به ما 16 مقدار ممکن برای چهار بیت باینری می دهد. 8 بیت حرکت کنید و 256 مقدار ممکن را دریافت خواهید کرد. این مقدار فضای بسیار بیشتری را برای نمایش می‌گیرد زیرا چهار رقم اعشاری 10000 مقدار ممکن را به ما می‌دهد. البته، کد باینری فضای بیشتری را اشغال می کند، اما کامپیوترها فایل های باینری را بسیار بهتر از سیستم اعشاری درک می کنند. و برای برخی چیزها، مانند پردازش منطقی، باینری بهتر از اعشاری است.

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

چرا کامپیوترها از فایل های باینری استفاده می کنند؟

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

برای کسانی که نمی دانند چرا "خاموش" با بار مثبت نشان داده می شود، به این دلیل است که الکترون ها دارای بار منفی هستند و تعداد الکترون های بیشتر به معنای جریان بیشتر با بار منفی است.

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

در اینجا نمودار یک ترانزیستور معمولی است:

در اصل، در صورت وجود جریان در دروازه، اجازه می دهد تا جریان از منبع به تخلیه جریان یابد. این یک کلید باینری را تشکیل می دهد. سازندگان می توانند این ترانزیستورها را بسیار کوچک بسازند - تا 5 نانومتر یا به اندازه دو رشته DNA. پردازنده‌های مدرن اینگونه کار می‌کنند و حتی آن‌ها نیز می‌توانند از مشکلات تمایز بین حالت‌های روشن و خاموش رنج ببرند (اگرچه این به دلیل اندازه مولکولی غیر واقعی آنها است عجیب بودن مکانیک کوانتومی).

چرا فقط سیستم باینری

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

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

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

بنابراین، ریاضیات باینری برای یک کامپیوتر راحت تر از هر چیز دیگری است. منطق باینری به راحتی به سیستم های باینری تبدیل می شود و True و False مربوط به حالت های روشن و خاموش هستند.

یک جدول حقیقت باینری که بر روی منطق باینری اجرا می شود، چهار خروجی ممکن برای هر عملیات اساسی خواهد داشت. اما از آنجایی که گیت های سه گانه از سه ورودی استفاده می کنند، جدول حقیقت سه گانه 9 یا بیشتر خواهد داشت. در حالی که سیستم باینری دارای 16 عملگر ممکن است (2^2^2)، سیستم سه تایی 19683 (3^3^3) خواهد داشت. مقیاس‌بندی به یک مسئله تبدیل می‌شود، زیرا در حالی که trinity کارآمدتر است، همچنین به طور تصاعدی پیچیده‌تر است.

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

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

نماد باینری چگونه تشکیل می شود؟

بیایید بفهمیم که چگونه چنین کلیدی تشکیل می شود. یک بیت کد باینری فقط می تواند شامل دو حالت باشد: صفر و یک (0 و 1). هنگام استفاده از دو بیت، نوشتن چهار مقدار ممکن می شود: 00، 01، 10، 11. یک ورودی سه بیتی حاوی هشت حالت است: 000، 001 ... 110، 111. در نتیجه، متوجه می شویم که طول کد باینری به تعداد بیت ها بستگی دارد. این عبارت را می توان با استفاده از فرمول زیر نوشت: N = 2m، که در آن: m تعداد ارقام و N تعداد ترکیبات است.

انواع کدهای باینری

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

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

  • بدون امضا؛
  • کدهای کاراکتر اعداد صحیح مستقیم؛
  • معکوس امضا شده؛
  • علامت اضافی؛
  • کد خاکستری؛
  • کد اکسپرس خاکستری؛
  • کدهای کسری

بیایید نگاهی دقیق تر به هر یک از آنها بیندازیم.

کد باینری بدون امضا

بیایید بفهمیم که این نوع ضبط چیست. در کدهای عدد صحیح بدون علامت، هر رقم (دودویی) نشان دهنده توان دو است. در این حالت، کوچکترین عددی که می توان به این شکل نوشت صفر است و حداکثر را می توان با فرمول زیر نشان داد: M = 2 n -1. این دو عدد به طور کامل محدوده کلیدی را که می توان برای بیان چنین کد باینری استفاده کرد، مشخص می کند. به قابلیت های فرم ضبط مذکور می پردازیم. در هنگام استفاده از این نوع کلید بدون علامت که شامل هشت بیت است، محدوده اعداد ممکن از 0 تا 255 خواهد بود. یک کد شانزده بیتی محدوده ای از 0 تا 65535 خواهد داشت. در پردازنده های هشت بیتی، از دو بخش حافظه استفاده می شود. برای ذخیره و نوشتن چنین اعدادی که در مقاصد مجاور قرار دارند. دستورات ویژه کار با چنین کلیدهایی را فراهم می کند.

کدهای امضا شده مستقیم با عدد صحیح

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

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

کلید معکوس امضا شده

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

عدد باینری متمم دو را امضا کرد

این نوع رکورد دارای معایب ذکر شده کلیدهای قبلی نیست. چنین کدهایی امکان جمع مستقیم اعداد مثبت و منفی را فراهم می کنند. در این مورد، هیچ تحلیلی از بیت علامت انجام نمی شود. همه اینها با این واقعیت امکان پذیر است که اعداد مکمل یک حلقه طبیعی از نمادها هستند، نه تشکیلات مصنوعی مانند کلیدهای جلو و عقب. علاوه بر این، یک عامل مهم این است که انجام محاسبات مکمل در کدهای باینری بسیار آسان است. برای این کار کافیست یکی را به کلید معکوس اضافه کنید. در هنگام استفاده از این نوع کد علامت شامل هشت رقم، محدوده اعداد ممکن از 128- تا 127+ خواهد بود. یک کلید شانزده بیتی دارای محدوده ای از -32768 تا +32767 خواهد بود. پردازنده های هشت بیتی نیز از دو بخش مجاور برای ذخیره چنین اعدادی استفاده می کنند.

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

کد خاکستری

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

کد اکسپرس خاکستری

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

نمایش یک عدد کسری در کلید باینری نقطه ثابت

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

نمایش ممیز شناور باینری

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

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

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



درک اعداد باینری


دانستن نحوه خواندن فایل‌های باینری برای استفاده از رایانه ضروری نیست. اما خوب است که این مفهوم را درک کنیم تا درک بهتری داشته باشیم که چگونه کامپیوترها اعداد را در حافظه ذخیره می کنند. همچنین به شما اجازه می دهد تا عباراتی مانند 16 بیت، 32 بیت، 64 بیت و اندازه گیری حافظه مانند بایت (8 بیت) را درک کنید.



"خواندن" کد باینری معمولاً به معنای تبدیل عدد باینری به عدد پایه 10 (اعشاری) است که مردم با آن آشنا هستند. این تبدیل به محض اینکه بفهمید یک زبان باینری چگونه کار می کند، نسبتاً آسان است.

هر رقم در یک عدد باینری معنای خاصی دارد مگر اینکه رقم آن صفر باشد. هنگامی که همه این مقادیر را تعیین کردید، به سادگی آنها را با هم جمع می کنید تا مقدار اعشاری 10 رقمی عدد باینری را بدست آورید. برای اینکه ببینید چگونه این کار می کند، عدد باینری 11001010 را در نظر بگیرید.


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



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



3. این روند را تا زمانی که به سمت چپ ترین عدد برسید ادامه دهید.



4. برای پایان، تنها کاری که باید انجام دهید این است که تمام این اعداد را با هم جمع کنید تا مقدار اعشاری کل عدد باینری را بدست آورید: 128 + 64 + 0 + 0 + 8 + 0 + 2 + 0 = 202 .


یادداشت: راه دیگری برای مشاهده کل این فرآیند به شکل معادله این است: 1 x 2 7 + 1 x 2 6 + 0 x 2 5 + 0 x 2 4 + 1 x 2 3 + 0 x 2 2 + 1 x 2 1 + 0 x 2 0 = 20.


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


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


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


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


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



2. برای تعیین علامت، به سمت چپ ترین بیت نگاه کنید. اگر یک باشد، عدد منفی است. اگر صفر باشد، عدد مثبت است.



3. اکنون همان محاسبات قبلی را انجام دهید، اما علامت مناسب را به عددی که با بیت سمت چپ نشان داده شده است اعمال کنید: 64 + 0 + 0 + 8 + 0 + 2 + 0 = -74 .


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