OOZOU
تواصلوا معنا
العودة إلى المدونة

التعامل مع حسابات الفاصلة العائمة في JavaScript: أسلوب بسيط

ألا نحب جميعًا Javascript؟

21 أغسطس 2017
7 دقائق للقراءة
التعامل مع حسابات الفاصلة العائمة في JavaScript: أسلوب بسيط

تحويل العدد الثنائي إلى عدد عشري مهمة شائعة في البرمجة. وفي JavaScript يمكن القيام بذلك بسهولة باستخدام الدوال المدمجة، أو بكتابة دالة تحويل مخصصة تحوّل النص الثنائي إلى عدد عشري. وفهم آلية التحويل من النظام الثنائي إلى النظام العشري ضروري للتعامل مع أنظمة الأعداد المختلفة. في هذه المقالة، نستكشف كيفية تحويل الأعداد الثنائية إلى عشرية في JavaScript بعدة أساليب. وفي النهاية، ستتمكنون من تحويل النصوص الثنائية إلى أعداد عشرية والعكس، وستفهمون كيف يعمل تحويل الأعداد في JavaScript.

ما هو العدد الثنائي؟

العدد الثنائي عدد يُعبَّر عنه في النظام الثنائي، الذي يستخدم رقمين فقط: 0 و 1. ويمثّل كل رقم في النص الثنائي قوة متزايدة للعدد 2، بدءًا من الرقم الأقصى يمينًا (الذي يمثّل 2^0) وانتقالًا نحو اليسار.

فمثلًا، يمكن تحويل العدد الثنائي 1011 إلى العشري على النحو التالي:

1 * 2^3 + 0 * 2^2 + 1 * 2^1 + 1 * 2^0 = 8 + 0 + 2 + 1 = 11

كيف نحوّل العدد الثنائي إلى عشري

في JavaScript، يمكن تحويل النص الثنائي إلى عدد عشري باستخدام الدالة parseInt()، أو يمكنكم كتابة دالة تحويل خاصة بكم تحوّل الثنائي إلى عشري باستخدام العمليات على مستوى البت (bitwise operations).

الأسلوب 1: استخدام الدالة parseInt()

أسهل طريقة لتحويل عدد ثنائي إلى عدد عشري في JavaScript هي استخدام الدالة المدمجة parseInt(). تأخذ هذه الدالة وسيطين: النص الثنائي والأساس (وهو هنا 2 للنظام الثنائي).

إليكم طريقة ذلك:

function binaryToDecimal(binaryString) {
    return parseInt(binaryString, 2);
}

const binaryNumber = "1011";
const decimalNumber = binaryToDecimal(binaryNumber);
console.log(`The decimal value of the binary string ${binaryNumber} is ${decimalNumber}`);

الشرح:

  • parseInt(binaryString, 2): تحوّل النص الثنائي إلى عدد عشري. ويحدّد الوسيط الثاني (2) أساس العدد المُدخل (ثنائي).
  • يُحوَّل النص الثنائي "1011" إلى العدد العشري 11.الأسلوب 2: كتابة دالة مخصصة

إذا أردتم فهمًا أعمق لآلية التحويل من الثنائي إلى العشري، يمكنكم كتابة دالة مخصصة تحوّل النص الثنائي إلى عدد عشري يدويًا.

function customBinaryToDecimal(binaryString) {
    let decimal = 0;
    for (let i = 0; i < binaryString.length; i++) {
        const bit = binaryString[binaryString.length - 1 - i]; // Get the bit from the end
        decimal += bit * Math.pow(2, i); // Add the corresponding power of 2
    }
    return decimal;
}

const binaryString = "1101";
const decimalResult = customBinaryToDecimal(binaryString);
console.log(`The decimal conversion of binary ${binaryString} is ${decimalResult}`);

الشرح:

  • نمرّ على النص الثنائي من اليمين إلى اليسار.
  • نضرب كل بت في 2 مرفوعًا إلى قوة تساوي موقع البت.
  • في النهاية، نجمع كل هذه القيم للحصول على العدد العشري.

فمثلًا، مع النص الثنائي "1101"، هذا ما يحدث داخل الدالة:

1 * 2^3 + 1 * 2^2 + 0 * 2^1 + 1 * 2^0 = 8 + 4 + 0 + 1 = 13

الأسلوب 3: استخدام معاملات الإزاحة على مستوى البتأسلوب آخر هو استخدام معاملات الإزاحة (bitwise shift operators) لتحويل الثنائي إلى عشري يدويًا. وتعتمد هذه الطريقة على إزاحة البتات إلى اليسار وإضافة قيمة البت الحالي.

function bitwiseBinaryToDecimal(binaryString) {
    let decimal = 0;
    for (let i = 0; i < binaryString.length; i++) {
        decimal = (decimal << 1) | (binaryString[i] - '0');
    }
    return decimal;
}

const binaryValue = "1010";
const decimalValue = bitwiseBinaryToDecimal(binaryValue);
console.log(`The decimal of binary ${binaryValue} is ${decimalValue}`);

الشرح:

  • decimal << 1: يزيح القيمة العشرية الحالية بمقدار 1 إلى اليسار، وهو ما يعادل ضربها في 2.
  • |: يضيف معامل OR على مستوى البت قيمة البت الحالي إلى العدد العشري.

غالبًا ما تكون هذه الطريقة أسرع في بعض البيئات التي يكون فيها تحسين الأداء أمرًا حاسمًا، لكنها قد تكون أصعب فهمًا على المبتدئين.

التحويل من العشري إلى الثنائي

بعد أن تناولنا كيفية تحويل الثنائي إلى عشري، لنلقِ نظرة سريعة على كيفية تحويل العدد العشري إلى نص ثنائي.

الأسلوب 1: استخدام toString()

في JavaScript، يمكنكم استخدام الدالة toString() لتحويل العدد العشري إلى نص ثنائي.

function decimalToBinary(decimalNumber) {
    return decimalNumber.toString(2);
}

const decimalNum = 13;
const binaryString = decimalToBinary(decimalNum);
console.log(`The binary representation of ${decimalNum} is ${binaryString}`);

الأسلوب 2: كتابة دالة مخصصة للتحويل من العشري إلى الثنائي يمكنكم أيضًا كتابة دالة تحويل خاصة بكم تحوّل العدد العشري إلى نص ثنائي:

function customDecimalToBinary(decimalNumber) {
    let binary = "";
    while (decimalNumber > 0) {
        binary = (decimalNumber % 2) + binary;
        decimalNumber = Math.floor(decimalNumber / 2);
    }
    return binary || "0"; // Return "0" if the decimal number is 0
}

const decimalVal = 9;
const binaryResult = customDecimalToBinary(decimalVal);
console.log(`The binary string of ${decimalVal} is ${binaryResult}`);

الشرح:

  • نقسم العدد العشري على 2 بشكل متكرر.
  • في كل عملية قسمة، نأخذ الباقي ونضعه في بداية النص الثنائي.
  • تستمر العملية حتى يصبح العدد العشري مساويًا لـ 0.

فمثلًا، تحويل 9 إلى الثنائي يعطي:

sql
9 / 2 = 4 remainder 1 (binary digit)
4 / 2 = 2 remainder 0 (binary digit)
2 / 2 = 1 remainder 0 (binary digit)
1 / 2 = 0 remainder 1 (binary digit)

Result: 1001

الخلاصة

يصبح تحويل الثنائي إلى عشري و العشري إلى ثنائي في JavaScript أمرًا مباشرًا بمجرد فهم المبادئ الأساسية. وسواء استخدمتم الدالة المدمجة parseInt() للتحويل من الثنائي إلى العشري أو أنشأتم دالة تحويل مخصصة، فالعملية بسيطة نسبيًا.

  • يمكن التحويل من الثنائي إلى العشري باستخدام parseInt() في JavaScript، أو بدوال مخصصة، أو بمعاملات البت.
  • ويمكن التحويل من العشري إلى الثنائي باستخدام الدالة toString() أو بأسلوب مخصص يعتمد على حلقة تكرار.

وبإتقان هذه الأساليب، ستتعاملون بثقة مع تحويل الأعداد في JavaScript في طيف واسع من حالات الاستخدام.

الأسئلة الشائعة

**1. كيف نحوّل عددًا ثنائيًا إلى عدد عشري في JavaScript؟**يمكنكم تحويل العدد الثنائي إلى عدد عشري باستخدام parseInt(binaryString, 2)، حيث يحدّد الوسيط الثاني أن المُدخل بالنظام الثنائي.

**2. ما هو النص الثنائي؟**يُقصد بـ النص الثنائي سلسلة من الأرقام تتكوّن من 0 و 1 فقط، وتمثّل عددًا في النظام الثنائي.

**3. كيف نحوّل عددًا عشريًا إلى ثنائي في JavaScript؟**يمكنكم تحويل العدد العشري إلى نص ثنائي باستخدام decimalNumber.toString(2)، أو بكتابة حلقة تكرار مخصصة تُجري عمليات قسمة متتالية على 2.

**4. لماذا تستخدم JavaScript الأساس 2 في التحويل الثنائي؟**يُستخدم الأساس 2 في النظام الثنائي لأنه يمثّل الأعداد برقمين فقط هما 0 و 1، وهما أساس الحساب الثنائي في أنظمة الحاسوب.

**5. هل يمكن استخدام العمليات على مستوى البت للتحويل من الثنائي إلى العشري؟**نعم، يمكن استخدام معاملات الإزاحة على مستوى البت للتحويل من الثنائي إلى العشري عبر إزاحة البتات وإضافة قيمها وفق قوى العدد 2.

**6. ما الفرق بين نظامَي الأعداد الثنائي والعشري؟**يستخدم النظام الثنائي رقمين فقط (0 و 1)، بينما يستخدم النظام العشري عشرة أرقام (0-9). ويُستخدم النظام الثنائي عادةً في الحواسيب، بينما يُستخدم النظام العشري في الرياضيات اليومية.

وبفهم هذه المفاهيم، ستكونون مستعدين للتعامل مع تحويل الأعداد في مشاريع JavaScript الخاصة بكم بسهولة.

Related Articles

كيف أصمّم برمجيات؟ دليل المبتدئين لأصحاب الأعمال

كيف أصمّم برمجيات؟ دليل المبتدئين لأصحاب الأعمال

تصميم البرمجيات عملية ممتعة لكنها معقدة، تتطلب الإبداع والتفكير المنطقي ومهارات حل المشكلات.

اقرأوا المزيد
مستقبل الحوسبة الطرفية: ما تحتاج الشركات إلى معرفته

مستقبل الحوسبة الطرفية: ما تحتاج الشركات إلى معرفته

يتطور المشهد الرقمي بسرعة، وعلى الشركات أن تتكيّف لتواكب الطلب المتزايد على السرعة والكفاءة والمعالجة في الوقت الفعلي.

اقرأوا المزيد
مستقبل قطاع التجزئة: الذكاء الاصطناعي والواقع المعزّز واتجاهات التحوّل الرقمي

مستقبل قطاع التجزئة: الذكاء الاصطناعي والواقع المعزّز واتجاهات التحوّل الرقمي

يتطور قطاع التجزئة بوتيرة غير مسبوقة بفضل الذكاء الاصطناعي (AI) والواقع المعزّز (AR) وتقنيات التحوّل الرقمي. فلم تعد المتاجر التقليدية مجرد أماكن لبيع المنتجات، بل أصبحت متاجر ذكية وتفاعلية.

اقرأوا المزيد

Have a Project in Mind?

Let's discuss how we can help bring your ideas to life with our expertise in web and mobile development.

ابدأوا المحادثةhello@oozou.com
OOZOU Logo

بانكوك · سنغافورة · هونغ كونغ

X
Facebook
Instagram
LinkedIn
OOZOU Co., Ltd.
548 One City Centre
Ploenchit Road
Bangkok 10330
Thailand
+66 2544 0000
hello@oozou.com

الخدمات

  • تطوير الويب
  • وكلاء الذكاء الاصطناعي والذكاء الاصطناعي التوليدي
  • تطوير تطبيقات الجوال
  • تحليلات البيانات وهندستها
  • تصميم تجربة المستخدم وواجهته (UX/UI) وتصميم المنتجات
  • التحوّل الرقمي

الشركة

  • من نحن
  • الوظائف
  • المدونة
  • دراسات الحالة
  • عروض حية
  • تعلّمت اليوم
  • تواصل معنا

المزيد

  • القطاعات
  • شبكة الشركاء
© 2026 OOZOU. جميع الحقوق محفوظة.
سياسة الخصوصيةمدونة قواعد السلوكسياسة مكافحة الرشوة والفساد