Skip to main content
🔬 Advanced

ماشین حساب باینری

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

سیستم عددی باینری: چگونه کامپیوترها شمارش می کنند

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

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

موقعیت2⁷2⁶2⁵2⁴2⁰
ارزش1286432168421

تبدیل باینری به اعشار:هر بیت را با ارزش جای آن ضرب کنید و تمام نتایج را جمع کنید.

مثال:101101012= 1x128 + 0x64 + 1x32 + 1x16 + 0x8 + 1x4 + 0x2 + 1x1 = 128 + 32 + 16 + 4 + 1 =181

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

مثال: تبدیل 181 به باینری:

بقيه اش رو از پايين به بالا بخون:101101012

ریاضیات باینری: جمع، تفریق و ضرب

عددی باینری همان قواعد اعشاری را دنبال می کند، اما حمل در 2 به جای 10 اتفاق می افتد.

قوانین جمع دوگانه:0+0=0، 0+1=1، 1+0=1، 1+1=10 (حمل 1) ، 1+1+1=11 (حمل 1)

مثال: 10112 + 11012 (11 + 13 = 24)

1011 + 1101 ------ 11000

کار از راست به چپ: 1+1=10 (نوشتن 0، حمل 1) ؛ 1+0+1=10 (نوشتن 0، حمل 1) ؛ 0+1+1=10 (نوشتن 0، حمل 1) ؛ 1+1+1=11 (نوشتن 1، حمل 1) ؛ حمل نهایی می نویسد 1. نتیجه: 110002 = 24

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

مثال: -13 در تکمیل 8 بیتی دو: +13 = 000011012 -> همه بیت ها را برگردانید -> 111100102 -> 1 اضافه کنید ->111100112

این اجازه می دهد که تفریق به عنوان جمع انجام شود: 20 - 13 = 20 + (-13).

ضرب باینریظریف است: هر محصول جزئی یا 0 (اضافه به 0) یا خود عدد (اضافه به 1) ، به سمت چپ جابجا شده است. مثال: 10112 x 1012 (11 x 5 = 55):

1011 × 101 ----- 1011 (1011 × 1) 0000 (1011 × 0، جابه جا شده) 1011 (1011 × 1، جابه جا شده دو بار) ------- 1101112 = 55

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

درک واحدهای باینری برای هر کسی که با کامپیوترها، ذخیره سازی یا سرعت شبکه کار می کند ضروری است:

واحداندازهحداکثر ارزش (بدون امضا)کاربرد رایج
کمی1 رقم باینری1پرچم بولی، ارزش باینری واحد
گند بزنچهار بیت15 (هکس: F)یک رقم هگزادسیمال
بایت8 بیت۲۵۵یک کاراکتر (ASCII) ، کانال رنگی
کلمه16 بیت۶۵۵۳۵سیستم های قدیمی 16 بیتی، یونیکد پایه
کلمه دوگانه (DWORD)32 بیت۴۲۹۴۹۶۷۲۹۵اعداد صحیح 32 بیتی، آدرس های IPv4
Quad Word (QWORD)64 بیتی۱۸۴۴۶۷۴۷۴۷۳۷۰۹۵۱۶۱۵عددهای صحیح مدرن، اشاره گرها، زمانبندی ها

مقدار رنگ:رنگ های وب از 24 بیتی RGB (8 بیتی در هر کانال) استفاده می کنند. #FF5733 = R:255, G:87, B:51. هر کانال 8 بیتی می تواند 256 سایه را نشان دهد (0 - 255). کل رنگ های ممکن: 2563 =۱۶۷۷۷۲۱۶(حدود 16.7 میلیون)

مجوزهای فایل در یونیکس/لینوکس:rwxr-xr-- = 111 101 100 در باینری = 7، 5، 4 در اکتال = chmod 754. هر مجموعه 3 بیت نشان دهنده خواندن (r=4) ، نوشتن (w=2) و اجرای (x=1) مجوز برای مالک، گروه و دیگران است.

عملیات بیت و کاربردهای آن

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

عملیاتنمادرفتارمثال
و&1 اگر هر دو بیت 1 باشند1010 و 1100 = 1000
OR|1 اگر هر بیت 1 باشد۱۰۱۰. ۱۱۰۰ = ۱۱۱۰
XOR^1 اگر بیت ها متفاوت باشند۱۰۱۰ ^ ۱۱۰۰ = ۰۱۱۰
نه~همه بيس ها رو برگردون~1010 = 0101
به سمت چپ<<بیت های شیفت به چپ (x2 هر شیفت)1011 << 1 = 10110 (x2)
به سمت راست>>بیت های شیفت به سمت راست (÷2 در هر شیفت)1011 >> 1 = 0101 (÷2)

کاربرد های عملی:

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

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

سیستمپایهارقامکاربرد رایج
باینری (بنای-2)20، 1عملیات پردازنده، ذخیره سازی، منطق
اکتال (بنای 8)80 - 7مجوزهای فایل یونیکس، سیستم های قدیمی تر
اعشاری (بنای 10)100 تا 9اعداد قابل خواندن توسط انسان
هگزادسیمال (بنای 16)160 تا 9، A تا Fآدرس های حافظه، کد های رنگی، کد ماشین

تبدیل سریع: باینری هکس(4 رقم باینری = 1 عدد هکس):

باینریهیکساعشاریباینریهیکساعشاری
0000001000 دلار88
000111صد و یک99
001022۱۰۱۰A10
001133۱۰۱۱B11
010044۱۱۰۰C12
010155۱۱۰۱D13
011066۱۱۱۰E14
011177۱۱۱۱F15

این گروه بندی 4 بیتی هکس را به عنوان یک نماد فشرده برای داده های باینری بسیار مفید می کند: ارزش 32 بیتی11001010 00111111 10110101 00001100خیلی راحت تر میشه نوشتCA3FB50C.

باینری در شبکه سازی: آدرس های IP و ماسک های زیر شبکه

درک باینری برای مهندسی شبکه ضروری است چون آدرس های IPv4 اساساً اعداد باینری ۳۲ بیتی هستند، و زیر شبکه -- فرآیند تقسیم شبکه ها -- کاملاً به عملیات باینری متکی است.

یک آدرس IPv4 مثل192.168.1.100نماد قابل خواندن انسان برای ارزش باینری 32 بیتی است:

11000000.10101000.00000001.01100100

A ماسک زیر شبکهتعیین می کند که کدام بخش از آدرس شبکه را شناسایی می کند و کدام میزبان را شناسایی می کند. ماسک 255.255.255.0 در باینری:

11111111.11111111.11111111.00000000

bitwise AND از آدرس IP و ماسک زیر شبکه آدرس شبکه را می دهد:

جزءاعشاریباینری
آدرس IP192.168.1.10011000000.10101000.00000001.01100100
ماسک زیر شبکه255.255.255.01111111111111111111111111111
شبکه (و)192.168.1.011000000.10101000.00000001.00000000

نماد CIDR (به عنوان مثال ، / 24) به شما می گوید که چه تعداد 1-بیت پیشرو در ماسک زیر شبکه وجود دارد. ماسک / 24 دارای 24 واحد و پس از آن 8 صفر است ، که به 28 - 2 = 254 آدرس میزبان قابل استفاده در هر زیر شبکه اجازه می دهد. ماسک / 16 به 65،534 میزبان اجازه می دهد. مهندسان شبکه روزانه از ریاضیات ذهنی باینری برای برنامه ریزی زیر شبکه ها ، محاسبه آدرس های پخش و عیب یابی مسیریابی استفاده می کنند.

باینری در رمزنگاری و امنیت

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

رمزنگاری XOR (پایه رمزنگاری های مدرن):XOR دارای یک خاصیت منحصر به فرد است - استفاده از آن دو بار با همان کلید، مقدار اصلی را باز می گرداند: A K K = A. این باعث می شود XOR پایه رمزنگاری جریان و پد های یک بار باشد.

مثال: رمزگذاری بایت 01001101 (حرف "M" در ASCII) با کلید 10110010:

اندازه کلید در رمزگذاری مدرن:AES-128 از یک کلید 128 بیتی استفاده می کند ، به این معنی که 2128 ~ 3.4 x 1038 کلید ممکن وجود دارد - بیش از تعداد اتم های موجود در جهان قابل مشاهده. AES-256 از کلید های 256 بیتی با 2256 امکان استفاده می کند. حتی سریعترین ابر رایانه ها نمی توانند این فضاهای کلیدی را به صورت وحشیانه اعمال کنند. هر بیت اضافی فضای جستجو را دو برابر می کند ، به همین دلیل طول کلید در رمزنگاری به طور نمایی مهم است.

توابع هش مانند SHA-256 خروجی باینری 256 بیتی (32 بایت) را از هر ورودی تولید می کنند. حتی یک تغییر تک بیتی در ورودی یک هش کاملاً متفاوت تولید می کند - ویژگی ای به نام "اثر لاغری" که هش ها را برای تأیید یکپارچگی داده ها ، ذخیره رمز عبور و تقویت فناوری بلاکچین مفید می کند.

محاسبات باینری و کوانتومی:در حالی که رایانه های کلاسیک از بیت های باینری (0 یا 1) استفاده می کنند، رایانه های کوانتومی از کیوبیت هایی استفاده می کنند که می توانند به طور همزمان در یک حالت فوق العاده از هر دو حالت وجود داشته باشند. یک کلید 256-بیتی کلاسیک دارای 2256 مقدار ممکن است که باید به صورت متوالی بررسی شود؛ یک رایانه کوانتومی که الگوریتم گروور را اجرا می کند می تواند این فضا را در √(2256) = 2128 عملیات جستجو کند. به همین دلیل رمزنگاری پس از کوانتومی در حال توسعه است - برای ایجاد طرح های رمزگذاری مبتنی بر باینری که حتی در برابر دشمنان کوانتومی ایمن باقی می مانند.

سوالات متداول

چرا کامپيوترها به جاي اعشاري از دودويي استفاده ميکنن؟

مدارهای الکترونیکی با تنها دو حالت متمایز قابل اعتماد هستند: روشن (والتس بالا ~ 1) و خاموش (والتس پایین ~ 0). نشان دادن 10 حالت متمایز برای اعشاری به کنترل ولتاژ دقیق تر نیاز دارد و به سر و صدا الکتریکی حساس تر خواهد بود. سادگی باینری به میلیاردها ترانزیستور اجازه می دهد تا با سرعت گیگاهرتز با میلیاردها عملیات در ثانیه به طور قابل اعتماد کار کنند.

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

یک بایت (8 بیت) می تواند 28 = 256 مقدار مختلف را نشان دهد. برای عدد صحیح بدون علامت: 0 تا 255. برای عدد صحیح با علامت (تكمیل دو): -128 تا 127. حداکثر مقدار بایت بدون علامت در باینری 111111112 = 255 است؛ در هکس FF است.

چطور می تونم یک عدد منفی رو به عدد باینری تبدیل کنم؟

از مکمل دو استفاده کنید: (1) نسخه مثبت را به باینری تبدیل کنید، (2) همه بیت ها را (0->1، 1->0) برگردانید، (3) 1 اضافه کنید. مثال: -13 در 8 بیتی: +13 = 000011012, flip bits = 111100102, add 1 = 111100112. این همان شیوه ای است که تمام رایانه های مدرن اعداد صحیح منفی را ذخیره می کنند.

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

هر دو سیستم عددی موقعیتی هستند که در محاسبات مورد استفاده قرار می گیرند. باینری (بنای-2) تنها از 0 و 1 استفاده می کند - زبان بومی رایانه ها. هگزادسیمال (بنای-16) از 0 - 9 و A - F به عنوان یک نماد فشرده برای باینری استفاده می کند - هر 4 رقم باینری دقیقاً با 1 رقم هکس مطابقت دارد. هکس برای آدرس های حافظه ، کد های رنگی (#RRGGBB) و کد ماشین استفاده می شود زیرا از باینری خام فشرده تر و قابل خواندن تر است.

عملیات بیت به بیت برای چه استفاده می شود؟

عملیات بیت به بیت (AND، OR، XOR، NOT، shifts) ، بیت های فردی را در اعداد صحیح دستکاری می کنند. کاربردهای رایج: پرچم های بیت و مجوزها (Unix chmod) ، بررسی حتی / عجیب (n & 1) ، ضرب / تقسیم سریع با قدرت 2 (تغییر بیت) ، الگوریتم های رمزگذاری ، توابع هش ، تشخیص خطای CRC ، ماسک های زیر شبکه و توسعه بازی (تخزین حالت کامپکت در یک عدد صحیح واحد).

نقطه شناور باینری چیست و چرا 0.1 + 0.2 ≠ 0.3 در برنامه نویسی؟

بسیاری از رایانه های مدرن از IEEE 754 دوگانه نقطه شناور استفاده می کنند که کسر های اعشاری را به صورت دوگانه نشان می دهد. همانطور که 1/3 = 0.3333 ... نمی تواند به طور دقیق در اعشاری نشان داده شود ، 1/10 نیز نمی تواند به طور دقیق در دوگانه نشان داده شود (این یک کسر دوگانه بی نهایت تکراری است). این باعث می شود که خطاهای کوچک گردآوری شود: در اکثر زبان ها ، 0.1 + 0.2 = 0.30000000000000004 . برای محاسبات دقیق مالی از ریاضی عدد صحیح (کار در سنت ، نه دلار) یا کتابخانه های اعشاری استفاده کنید.

چگونه باینری در ذخیره سازی داده و اندازه فایل استفاده می شود؟

ذخیره سازی در بایت ها (8 بیت) ، کیلوبایت ها (1024 بایت) ، مگابایت ها (1024 کیلو بایت) ، گیگابایت ها (1024 مگابایت) و غیره اندازه گیری می شود. توجه: تولید کنندگان هارد دیسک از پیشوند SI استفاده می کنند (1 کیلو بایت = 1000 بایت) در حالی که سیستم عامل ها از پیشوند های باینری استفاده می کنند (1 کیلو بایت = 1024 بایت) ، که باعث ایجاد اختلاف "فضای گمشده" در هنگام خرید ذخیره سازی می شود. درایو 1 TB در ویندوز ~ 931 GiB را نشان می دهد زیرا 1,000,000,000,000 ÷ 1,073,741,824 ~ 931 است.

کد باینری اعشاری (BCD) چیست؟

BCD هر رقم اعشاری را به عنوان یک گروه باینری 4 بیتی کدگذاری می کند: 0=0000، 1=0001، ..., 9=1001. بنابراین اعشاری 93 در BCD 1001 0011 است. BCD در سیستم های مالی استفاده می شود (از اشتباهات گردآوری نقطه شناور جلوگیری می کند) ، ساعت های دیجیتال و نمایشگرها (شاشه های 7 بخش مستقیماً BCD را رمزگشایی می کنند) و سیستم های بزرگ قدیمی. این کار کمتر از باینری خالص است اما خطاهای تبدیل اعشاری به باینری را در برنامه های حیاتی از بین می برد.

},{"@type":"سوال","نام":"بزرگترین عددی که یک بایت می تواند داشته باشد چیست؟"",acceptedAnswer":{"@type":"جواب","متن":"یک بایت (8 بیت) می تواند 28 = 256 مقدار مختلف را نشان دهد. برای اعداد صحیح بدون علامت: 0 تا 255. برای اعداد صحیح با علامت (تكميل دو): -128 تا 127. حداکثر مقدار بایت بدون علامت در باینری 111111112 = 255 است؛ در هکس FF است. "}},{"@type":"سوال","نام":"چگونه می توانم یک عدد منفی را به باینری تبدیل کنم؟"",acceptedAnswer":{"@type":"جواب","متن":" از مکمل دو استفاده کنید: (1) نسخه را به باینری تبدیل کنید، (2) همه بیت ها را برگردانید (0-> 1،> 1-0) ، (3) اضافه کردن 1. -13 در 8-bit = 0013 + 00101 = 112.001 بایت = 112.0011 بایت. تمام رایانه های مدرن اینگونه اعداد صحیح منفی را ذخیره می کنند. "}},{"@type":"سوال","نام":" تفاوت بین باینری و هگزادسیمال چیست؟"،"acceptedAnswer":{"@type":"Answer","text":"هر دو سیستم عددی موضعی هستند که در محاسبات مورد استفاده قرار می گیرند. باینری (بنای-2) فقط از 0 و 1 - زبان بومی رایانه ها استفاده می کند. هگزادسیمال (بنای-16) از 0 - 9 و A - F به عنوان یک نماد فشرده برای باینری استفاده می کند - هر 4 رقم باینری دقیقاً با 1 رقم هگزادسیمال مطابقت دارد. هکس برای آدرس های حافظه ، کد های رنگی (#RRGGBB) و کد ماشین استفاده می شود زیرا از دوتایی خام فشرده تر و قابل خواندن تر است. "}},{"@type":"سوال","نام":"عملیات بیت به بیت برای چه استفاده می شود؟"،"acceptedAnswer":{"@type":"Answer","text":"عملیات بیت به بیت (AND، OR، XOR، NOT، shifts) بیت های فردی را در اعداد صحیح دستکاری می کنند. استفاده های رایج: پرچم های بیت و مجوزها (Unix chmod) ، بررسی حتی / عجیب (n & 1) ، ضرب / تقسیم سریع با توان 2 (تغییر بیت) ، الگوریتم های رمزگذاری ، توابع هش ، تشخیص خطای CRC ، ماسک های زیر شبکه ، و توسعه بازی (تخزین حالت کامپکت در یک عدد واحد). "}},{"@type":"سوال","نام":"نقطه شناور باینری چیست و چرا 0.1 + 0.2 ≠ 0.3 در برنامه نویسی است؟"، "جواب پذیرفته شده":{"type"@:"جواب","متن":"بیشتر رایانه های مدرن از IEEE 754 نقطه شناور باینری استفاده می کنند ، که نمایانگر کسر های اعشاری در باینری است. همانطور که 1/3 = 0.33 ... نمی تواند به طور دقیق در باینری نشان داده شود ، 1/10 نیز نمی تواند به طور دقیق در باینری نشان داده شود (این یک کسر باینری بی نهایت تکراری است). این امر باعث ایجاد خطاهای کوچک گردآوری می شود: در اکثر زبان ها، 0.1 + 0.2 = 0.30000000000000004. برای محاسبات دقیق مالی، از ریاضی عدد صحیح (کار در سنت، نه دلار) یا کتابخانه های اعشاری استفاده کنید. "}},{"@type":"سوال","نام":"چگونه دوتایی در ذخیره سازی داده ها و اندازه فایل ها استفاده می شود؟"،"acceptedجواب":{"@type":"جواب","متن":" ذخیره سازی در بایت (8 بیت) ، کیلوبایت (1,024 بایت) ، مگابایت (1,024 KB) ، گیگابایت (1,024 MB) و غیره اندازه گیری می شود. توجه: تولید کنندگان هارد دیسک از پیشوند SI استفاده می کنند (1 KB = 1000) در حالی که سیستم عامل ها از پیشوند های باینری استفاده می کنند (1 KiB = 1,024 بایت) ، که باعث ایجاد تفاوت آشکار \"فراغ فضای\" هنگام خرید ذخیره سازی می شود. یک درایو 1 ترابایت در ویندوز ~931 گیگابایت را نشان می دهد زیرا 1,000,000,000,000 ÷ 1,073,741,824 ~ 931. "}},{"@type":"سوال","نام":"دسمی با کد باینری (BCD) چیست؟","acceptedجواب":{"@type":"جواب","متن":"BCD هر رقم اعشاری را به عنوان یک گروه باینری 4 بیتی کدگذاری می کند: 0=0000، 1=0001، ...، 9=1001. بنابراین اعشاری 93 در BCD 1001 0011 است. BCD در سیستم های مالی استفاده می شود (از خطاهای گردآوری نقطه شناور اجتناب می کند) ، ساعت ها و نمایشگرهای دیجیتال (7 بخش نمایشگرها مستقیماً BCD را رمزگشایی می کنند) و سیستم های اصلی قدیمی. این کار کمتر از باینری خالص است اما خطاهای تبدیل اعشاری به باینری را در برنامه های حیاتی از بین می برد. "}}}