محول ثنائي إلى عشري
تحويل الأعداد الثنائية إلى عشرية والعكس فوراً. يدعم أعداداً حتى 64 بت. هذا المحول المجاني يعطي نتائج فورية ودقيقة.
كيف يعمل تحويل القاعدة الثنائية إلى العشرية
القاعدة الثنائية (قاعدة-2) تستخدم فقط الأرقام 0 و 1. كل موضع يمثل قوة من 2، وتضاعف من اليمين إلى اليسار. لتحويل القاعدة الثنائية إلى العشرية، ضع كل رقم ثنائي في موضعه وضربه بقيمته وجمع النتائج.
مثال: تحويل 1011₂ إلى العشرية
- موضع 3 (الأيسر): 1 × 2³ = 1 × 8 = 8
- موضع 2: 0 × 2² = 0 × 4 = 0
- موضع 1: 1 × 2¹ = 1 × 2 = 2
- موضع 0 (الأيمن): 1 × 2⁰ = 1 × 1 = 1
- المجموع: 8 + 0 + 2 + 1 = 11
لتحويل العشرية إلى القاعدة الثنائية، قم بتقسيمها على 2 مرارًا وتسجيل الأقساط من الأسفل إلى الأعلى. 11 ÷ 2 = 5 R1، 5 ÷ 2 = 2 R1، 2 ÷ 2 = 1 R0، 1 ÷ 2 = 0 R1 → قراءة الأقساط من الأعلى: 1011.
هذا النظام المعتمد على الوضع يعمل بنفس الطريقة مثل العشرية — فقط مع قاعدة مختلفة. في العشرية (قاعدة-10)، يُفهم الرقم 347 على أنه 3 × 10² + 4 × 10¹ + 7 × 10⁰ = 300 + 40 + 7. تستخدم القاعدة الثنائية نفس المبدأ ولكن مع قوى من 2 بدلاً من قوى من 10.
مرجع قيم الوضع الثنائي
البت (8 بت) هو الوحدة الأساسية لتخزين الحاسوب. هنا هو الجدول الكامل لقيم الوضع الثنائي (0-255):
| موضع البت | قوة 2 | القيمة العشرية |
|---|---|---|
| بت 7 (MSB) | 2⁷ | 128 |
| بت 6 | 2⁶ | 64 |
| بت 5 | 2⁵ | 32 |
| بت 4 | 2⁴ | 16 |
| بت 3 | 2³ | 8 |
| بت 2 | 2² | 4 |
| بت 1 | 2¹ | 2 |
| بت 0 (LSB) | 2⁰ | 1 |
يمكن أن يمثل البت أي قيمة من 0 (00000000₂) إلى 255 (11111111₂). البتين (16 بت) يغطي 0-65,535. البتات الأربعة (32 بت) تغطي 0-4,294,967,295.
جدول قوى 2 الممتد
للمبرمجين والمتخصصين في علوم الحاسوب، المعرفة بقوى 2 حتى 2⁶⁴ ضرورية لتفهم العناوين الذكريّة، أنواع البيانات، وحدود النظام:
| قوة | القيمة العشرية | التعني |
|---|---|---|
| 2⁰ | 1 | وحدة أصغر (بت واحد) |
| 2⁸ | 256 | وحدة البت (0-255) |
| 2¹⁰ | 1,024 | 1 كيلو بت (كبيت) |
| 2¹⁶ | 65,536 | 16 بت; حد أقصي لبروتوكول TCP |
| 2²⁰ | 1,048,576 | 1 ميغا بت (مبيت) |
| 2²⁴ | 16,777,216 | 24 بت (16.7 مليون لون) |
| 2³⁰ | 1,073,741,824 | 1 جيجا بت (جبيت) |
| 2³² | 4,294,967,296 | 32 بت; مساحة العنوان IP4 الأقصى |
| 2⁴⁰ | 1,099,511,627,776 | 1 تيرا بت (تبيت) |
| 2⁶⁴ | 18,446,744,073,709,551,616 | مساحة العنوان 64 بت; معالجات الحاليّة |
انتبه إلى الفرق بين الأسماء المشتركة للقاعدة الثنائية (كبيت، مبيت، جبيت — قوى 2) والأسماء المشتركة للوحدات (كيلو، ميغا، جيجا — قوى 10). 1 جيجابايت = 1,000,000,000 بت; 1 جبيت = 1,073,741,824 بت. هذا الفرق ~7% يشرح لماذا يظهر القرص الصلب "500 جيجابايت" ك~465 جبيت في نظام التشغيل (الذي يستخدم عادةً وحدات قاعدة ثنائية داخليًا).
القيم الثنائية الشائعة في الحوسبة
يظهر هذه القيم الثنائية في البرمجة، الشبكات، وإدارة النظام:
| ثنائي | عشرية | عشري عشر | مستخدم |
|---|---|---|---|
| 00000000 | 0 | 0x00 | بت صفر، قناة اللون الأسود |
| 00001010 | 10 | 0x0A | علامة خط (LF) — علامة خط جديد (نظام Unix) |
| 00001101 | 13 | 0x0D | علامة العودة إلى البداية (CR) — جزء من علامة خط جديد (نظام ويندوز) |
| 00100000 | 32 | 0x20 | حرف الفضاء (ASCII) |
| 01000001 | 65 | 0x41 | حرف 'A' (ASCII) |
| 01100001 | 97 | 0x61 | حرف 'a' (يختلف عن 'A' في بت 5) |
| 01111111 | 127 | 0x7F | عنوان الlocalhost (بت الأخير); حرف DEL |
| 10000000 | 128 | 0x80 | بداية ASCII الممتدة / بت الإشارة |
| 11000000 | 192 | 0xC0 | قالب الشبكة C (192.x.x.x) |
| 11111111 | 255 | 0xFF | الإرسال; أقصى بت; الأبيض في RGB |
المقارنة بين القاعدة الثنائية، العشري عشر، والثلاثي
يتعامل المبرمجون بأساليب مختلفة حسب السياق. هنا هو كيفية ظهور القيم نفسها في كل نظام:
| عشرية | ثنائي | عشري عشر | ثلاثي | استخدام |
|---|---|---|---|---|
| 0 | 0000 | 0x0 | 0o0 | صفر / بت صفر |
| 7 | 0111 | 0x7 | 0o7 | صلاحيات Unix (rwx) |
| 10 | 1010 | 0xA | 0o12 | — |
| 15 | 1111 | 0xF | 0o17 | أقصى 4 بت (نصبت) |
| 16 | 10000 | 0x10 | 0o20 | — |
| 127 | 1111111 | 0x7F | 0o177 | أقصى بت مسجل |
| 255 | 11111111 | 0xFF | 0o377 | أقصى بت غير مسجل |
| 511 | 111111111 | 0x1FF | 0o777 | صلاحيات Unix rwxrwxrwx |
| 1023 | 1111111111 | 0x3FF | 0o1777 | أقصى 10 بت (ADC) |
العشري عشر هو الأشفرة الشائعة للقاعدة الثنائية لأن كل رقم عشري عشر ي映س علىexact 4 بت — مما يجعل التحويل سهلًا. يُستخدم الثلاثي 3 بت لكل رقم ويتخصص في صلاحيات نظام Unix (مثل chmod 755 = 111 101 101 في القاعدة الثنائية = rwxr-xr-x).
الرقم الثنائي الموقوف (الناقص)
ي đạiثل الرقم السالب باستخدام الناقص الثنائي — المعايير المحددة من قبل IEEE و تستخدم جميع المعالجات الحديثة تقريبًا. في نظام ثماني البت:
| ثنائي | عشري غير سالب | سالب (ناقص ثنائي) |
|---|---|---|
| 00000000 | 0 | 0 |
| 00000001 | 1 | +1 |
| 01111111 | 127 | +127 (أكبر قيمة إيجابية) |
| 10000000 | 128 | −128 (أقل قيمة سالبة) |
| 10000001 | 129 | −127 |
| 11111110 | 254 | −2 |
| 11111111 | 255 | −1 |
للتغيير علامة رقم في الناقص الثنائي: invert جميع البتات واضافة 1. على سبيل المثال، +5 = 00000101 → invert → 11111010 → add 1 → 11111011 = −5.
نطاقات النوعات العددية الشائعة:
| نوع | بتات | نطاق غير سالب | نطاق سالب |
|---|---|---|---|
| بت / uint8 | 8 | 0 إلى 255 | −128 إلى +127 |
| قصير / int16 | 16 | 0 إلى 65,535 | −32,768 إلى +32,767 |
| عدد / int32 | 32 | 0 إلى 4,294,967,295 | −2,147,483,648 إلى +2,147,483,647 |
| طويل / int64 | 64 | 0 إلى 18.4 × 10¹⁸ | −9.2 × 10¹⁸ إلى +9.2 × 10¹⁸ |
الرقم الثنائي في التكنولوجيا اليومية
يستند الرقم الثنائي على كل الحواسيب الحديثة لأن الماسحات الكهربائية لها حالتين مستقرتين (مفعلة/مغفلة، 1/0). تطبيقات رئيسية:
- حجم الملفات: 1 كيلوبايت = 2¹⁰ = 1,024 بايت; 1 ميجابايت = 2²⁰ = 1,048,576 بايت; 1 جيجابايت = 2³⁰ بايت
- الألوان: الألوان RGB هي ثلاثة قيم 8-بت. #FF5733 في الستكس = (255، 87، 51) في العشري = (11111111، 01010111، 00110011) في الثنائي
- التشفير ASCII: الحرف 'A' = 65 = 01000001 ثنائي; 'a' = 97 = 01100001
- الرموز Unicode: معظم الرموز النصية تناسب 16-بت (0–65,535 نطاق)
- عناوين IP: عناوين IPv4 هي أربعة مجموعات 8-بت: 192.168.1.1 = 11000000.10101000.00000001.00000001
فهم الرقم الثنائي مباشرة يساعد في البرمجة (العمليات البتية، الرايات)، الشبكات (حسابات IP/شبكة)، العمل مع hardware منخفض المستوى.
العملية الحسابية الثنائية: الجمع والطرح
تتبع العملية الحسابية الثنائية نفس القواعد التي تتبعها العشري، ولكن مع فقط دوتين. جدول الجمع هو:
| A | B | الناتج | الانتقال |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 |
مثال: 1011 + 0110
عملية من اليمين إلى اليسار: 1+0=1، 1+1=10 (اكتب 0 انتقالات 1)، 0+1+1=10 (اكتب 0 انتقالات 1)، 1+0+1=10 (اكتب 0 انتقالات 1). الناتج: 10001 (عشري: 11+6=17)
الطرح في hardware عادة ما يتم تنفيذه عن طريق إضافة ناقص ثنائي للخسارة. لتحسب A−B، يتم حساب A + (−B)، حيث −B هو ناقص ثنائي للخسارة. هذا يسمح بتشغيلวงية واحدة لتحليل الجمع والطرح.
العمليات البتية
توفير لغات البرمجة عمليات بتية تدير بتات فردية. هذه الأساسية لبرمجة منخفضة المستوى، أنظمة مدمجة، وتحسين الأداء:
| عملية | رمز | مثال (8-بت) | الناتج | حالة استخدام |
|---|---|---|---|---|
| AND | & | 10110101 & 11110000 | 10110000 | تغطية البتات، استخراج الحقول |
| OR | | | 10110101 | 00001111 | 10111111 | إضافة البتات، دمج الرايات |
| XOR | ^ | 10110101 ^ 11111111 | 01001010 | تغيير البتات، تشفير بسيط |
| NOT | ~ | ~10110101 | 01001010 | إستبدال البتات |
| الحركة إلى اليسار | << | 00000101 << 2 | 00010100 | ضرب 2ⁿ |
| الحركة إلى اليمين | >> | 00010100 >> 2 | 00000101 | قسمة 2ⁿ |
الحركة البتية أسرع بكثير من الضرب/القسمة في العديد من المعالجات. x << 1 متساوي x × 2، و x >> 1 متساوي x ÷ 2 (الفرق العشري). تستخدم هذه العمليات المحركات بشكل واسع في محركات الألعاب وبرامج firmware المدمجة.
الرقم الثنائي المضبوط العشري (BCD)
ي đạiثل الرقم العشري المضبوط باستخدام نمط ثنائي 4-بت لكل رقم عشري. على عكس الرقم الثنائي، يحتفظ BCD بالتركيب العشري:
| عشري | ثنائي | BCD |
|---|---|---|
| 0 | 0000 | 0000 |
| 5 | 0101 | 0101 |
| 9 | 1001 | 1001 |
| 10 | 1010 | 0001 0000 |
| 42 | 101010 | 0100 0010 |
| 99 | 1100011 | 1001 1001 |
| 255 | 11111111 | 0010 0101 0101 |
BCD أقل كفاءة في المساحة من الرقم الثنائي (10 من 16 مزيجًا ممكنًا 4-بت تستخدم)، ولكنها تسهل العرض العشري — كل nibble يترجم مباشرة إلى حرف مظهري. تستخدم BCD في الساعات الرقمية، الحاسبات، الأنظمة المالية (حيث يهم التمثيل العشري الدقيق)، وأنظمة قديمة من المعالجات الرئيسية (COBOL، IBM EBCDIC).
العدد العددي الثنائي (IEEE 754)
الأعداد العددية العشرية التي تحتوي على أجزاء فرعية (مثل 3.14) يتم تخزينها في ثنائي باستخدام المعيار IEEE 754. يحتوي العدد الثنائي (العدد العشري) على ثلاثة أجزاء:
| الجسم | البيت | الغرض |
|---|---|---|
| الاشارة | 1 | 0 = إيجابي، 1 = سالب |
| المعامل | 8 | المعامل المزود (التمييز = 127) |
| المنطوقة (الضمنية) | 23 | الجزء الفرعي (الرقم الأول المضمن) |
مثال: العدد العشري −6.5 في IEEE 754 العدد العشري:
- الاشارة = 1 (سالب)
- 6.5 في ثنائي = 110.1₂ = 1.101 × 2² (المحايد)
- المعامل = 2 + 127 (التمييز) = 129 = 10000001₂
- المنطوقة = 10100000000000000000000 (23 بت، الرقم الأول المضمن مفقود)
- التخزين الكامل: 1 10000001 10100000000000000000000
هذا هو سبب عدم تساوي 0.1 + 0.2 = 0.3 في معظم لغات البرمجة — يتم التمثيل العددي للعدد العشري 0.1 في ثنائي (مثل 1/3 في العدد العشري = 0.333…)، لذلك يجب أن يتم التقريب، مما يؤدي إلى أخطاء صغيرة. في الحسابات المالية، استخدم مكتبات العد العشري (مكتبة decimal في بايثون، مكتبة BigDecimal في جافا)
التحجيم الحرفي: من ASCII إلى UTF-8
النص يتم تخزينها كأرقام ثنائية مُترابطة إلى حروف. تطورت تحجيم الحروف لتتفق مع توسع الحوسبة العالمية:
| التحجيم | السنة | البيت لكل حرف | الحروف المدعومة | الملاحظات |
|---|---|---|---|---|
| ASCII | 1963 | 7 (المخزون في 8) | 128 | الحروف الإنجليزية، الأرقام، الحروف المائلة |
| ASCII الممتد (ISO 8859-1) | 1987 | 8 | 256 | الحروف الأوروبية الغربية (é، ñ، ü) |
| UTF-8 | 1993 | 8–32 (متغير) | 1,112,064 | compatible backwards مع ASCII؛ المعيار الويب |
| UTF-16 | 1996 | 16–32 (متغير) | 1,112,064 | استخدم في جافا، ويندوز، جافاسكربت الداخلي |
| UTF-32 | 2000 | 32 (ثابت) | 1,112,064 | العرض الثابت؛ يهدر مساحة للنص اللاتيني |
يحجيم UTF-8 يحجيم الحروف ASCII في بايت واحد (مثبت مع ASCII العادي)، الحروف الأوروبية في 2 بايت، الحروف الصينية في 3 بايت، والemoji في 4 بايت. يُستخدم تحجيم UTF-8 في أكثر من 98% من جميع صفحات الويب (وفقًا لـ W3Techs، 2024)
البوابات المنطقية الثنائية
البوابات المنطقية هي المكونات المادية الأساسية لجميع الدوائر الرقمية. تقوم كل بوابة بعمليات بسيطة على بت واحد أو بتين:
| البوابة | الرمز | جدول الحقيقة (A، B → الخروج) | الوصف |
|---|---|---|---|
| AND | A·B | 0،0→0؛ 0،1→0؛ 1،0→0؛ 1،1→1 | الخروج هو 1 فقط عندما يكون كل المدخلات 1 |
| OR | A+B | 0،0→0؛ 0،1→1؛ 1،0→1؛ 1،1→1 | الخروج هو 1 عندما يكون أحد المدخلات 1 |
| NOT | ¬A | 0→1؛ 1→0 | ينقل المدخل |
| NAND | ¬(A·B) | 0،0→1؛ 0،1→1؛ 1،0→1؛ 1،1→0 | AND تلاوة NOT — البوابة العالمية |
| XOR | A⊕B | 0،0→0؛ 0،1→1؛ 1،0→1؛ 1،1→0 | الخروج هو 1 عندما يكون المدخلات مختلفة |
البوابة NAND تعرف باسم البوابة العالمية لأن أي وظيفة منطقية أخرى يمكن بناؤها باستخدام فقط بوابات NAND. يحتوي معالج Apple M3 على حوالي 25 مليار ترانزستور — كل واحد هو سويتش ثنائي ميكروسكوبي يحتوي على 1 أو 0.
البوابة XOR لها خاصية خاصة: الخروج هو 1 عندما يكون المدخلات مختلفة. هذا يجعلها أساسًا للضرب الثنائي (الناتج البت للضرب النصف)، والتحقق من الأخطاء (التحقق من الباريتي)، والتشفير البسيط (تشفير XOR).
تاريخ الباينري: من لايبنيتز إلى الحواسيب الحديثة
يحمل نظام الباينري تاريخاً ثقافياً غنياً:
| السنة | الشخص/الأحداث | الضمن |
|---|---|---|
| ~300 قبل الميلاد | بينجالا (رياضياتي هندي) | استخدم نظاماً مشابهاً للبيانري لتصنيف الأشعار |
| 1679 | غوتفريد لايبنيتز | وصف نظام الباينري الرسمي; رأى اتصالات إلى الأي تشينغ الصيني |
| 1847 | جورج بوول | نشر "تحليل الرياضياتي لل منطق" — أساس الجبر المنطقي |
| 1937 | كلود شانون (رسالة ماجستير في MIT) | أظهر أن الجبر المنطقي يمكن أن يصف الدوائر الإلكترونية |
| 1945 | جون فون نيومان | اقترح بنية حاسوبية ذكية (بنية نيومان) |
| 1971 | Intel 4004 | حاسوب ميكروي أول - 2,300 ترانزستور، 4-بيت |
| 2024 | حاسوبات الحديثة | ملايين من الترانزستورات; بنية 64-بيت |
فهم لايبنيتز أن جميع الأرقام يمكن أن تُعبّر عنها باستخدام 0 و 1 فقط كان من حيث الرياضيات فقط - لم يكن يتصور حاسوباً إلكترونياً. أظهر شانون في رسالته الماجستير لعام 1937 أن الجبر المنطقي (البيانري) يمكن أن يربط إلى دوائر إلكترونية، مما أسس الأساس النظري لجميع الإلكترونيات الرقمية. وقد وصِف "ربما أهم رسالة ماجستير في القرن العشرين".
البيانري في الشبكات: العناوين IP و الأقران
فهم البيانري ضروري للادارة الشبكية:
| الوصف | الترقيم العشري | البيانري |
|---|---|---|
| العنوان IP | 192.168.1.100 | 11000000.10101000.00000001.01100100 |
| القران | 255.255.255.0 | 11111111.11111111.11111111.00000000 |
| العنوان الشبكي | 192.168.1.0 | 11000000.10101000.00000001.00000000 |
| العنوان البث | 192.168.1.255 | 11000000.10101000.00000001.11111111 |
يحسب العنوان الشبكي عن طريق اندماج العنوان IP مع القران. يضبط العنوان البث جميع أرقام المضيف إلى 1. عدد العناوين الموجودة = 2^(32-القران) - 2. في الشبكة /24: 2^8 - 2 = 254 عناوين مضيفة.
الأحجام الشائعة للقران:
| CIDR | القران | المضيفات | الاستخدام الشائع |
|---|---|---|---|
| /32 | 255.255.255.255 | 1 | مسار مضيف واحد |
| /30 | 255.255.255.252 | 2 | رابط نقطة إلى نقطة |
| /24 | 255.255.255.0 | 254 | شبكة LAN القياسية |
| /16 | 255.255.0.0 | 65,534 | شبكة الكلية الكبيرة |
| /8 | 255.0.0.0 | 16,777,214 | تخصيص Class A |
الأسئلة الشائعة
كيف أتحول 1100 إلى العشري؟
1100 في البيانري: 1×8 + 1×4 + 0×2 + 0×1 = 8 + 4 = 12. لذلك 1100 في البيانري = 12 في العشري.
ما هو 255 في البيانري؟
255 في البيانري هو 11111111 — كل ثماني أرقام مُستخدمة. هذا هو القيمة الأقصى لبت واحد ويتظهر في الشبكات (القران 255.255.255.0) والقيم اللونية (اللون الأحمر الكامل = 255، 0، 0).
كيف أتحول 100 إلى البيانري؟
قسّم بشكل متكرر: 100÷2=50 ر0، 50÷2=25 ر0، 25÷2=12 ر1، 12÷2=6 ر0، 6÷2=3 ر0، 3÷2=1 ر1، 1÷2=0 ر1. قراءة الباقي لأعلى: 1100100₂. تأكد: 64+32+4 = 100. ✓
ما الفرق بين البيانري والهيكساديكس؟
البيانري يستخدم قاعدة 2 (الأرقام 0-1); الهيكساديكس يستخدم قاعدة 16 (الأرقام 0-9، A-F). الهيكساديكس هو اختصار للبيانري — كل رقم هيكساديكس يُستخدم لتمثيل 4 أرقام بيانري. على سبيل المثال، الهيكساديكس FF = البيانري 11111111 = العشري 255.
لماذا يستخدم الحاسوب البيانري بدلاً من العشري؟
الدوائر الإلكترونية طبيعية للبيانري: transistor هو Either (1) أو off (0)، و tension هو Either high أو low. سيكون العشري يتطلب 10 مستويات tension مختلفة، وهو صعب تنفيذها بشكل موثوق في hardware. البيانري هو صعب على الأخطاء ويتوافق تماماً مع العمليات المنطقية true/false.
ما هو التكميلين؟
التكميلين هو الطريقة القياسية لتمثيل الأرقام الموجبة والسلبية في البيانري. لتحديد التكميلين (النفي) للعدد: قلب جميع الأرقام واضف 1. في نظام 8-بت، +5 هو 00000101، و -5 هو 11111011. البت الأيسر هو بت الإشارة: 0 = موجب، 1 = سالب. هذه النظام تسمح بتحليل hardware نفس الدائرة المضافة للضرب والطرح.
كيف أتحول البيانري إلى الهيكساديكس؟
جمّع الأرقام البيانري في مجموعات من 4 من اليمين إلى اليسار، ثم تحويل كل مجموعة. مثال: 10110101₂ → 1011 0101 → B5₁₆. المجموعات هي: 0000=0، 0001=1، 0010=2، ...، 1001=9، 1010=A، 1011=B، 1100=C، 1101=D، 1110=E، 1111=F.