اذهب إلى المحتوى
  • 0

كيفية تحويل سلسلة ثنائية طويلة في JavaScript؟

Ahmed Ebrahim11

السؤال

السلام عليكم 

لاحظت ان جافا اسكربت تتعامل مع طول معين للارقام ال binary  حيث قمت بادخل 0000011110000111111110000 

وخرج رقم غريب 

كيف اقوم بحل هذه المشكله حيث اني اريد ان تقوم بالعلاقه المعروفه لتحويله ل decimal 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

إذا كنت تتعامل مع أرقام بت طويلة في JavaScript، يمكن أن يؤدي ذلك إلى فقدان الدقة في بعض الحالات بسبب تمثيل الأعداد في JavaScript باستخدام تنسيق 64 بت للأرقام الثنائية (double-precision floating-point format).

لتجنب فقدان الدقة، يمكنك استخدام نوع BigInt على نحو:

const binaryString = '0000011110000111111110000';
const decimalNumber = BigInt(`0b${binaryString}`);
console.log(decimalNumber);
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 6 دقائق مضت قال Adnane Kadri:

إذا كنت تتعامل مع أرقام بت طويلة في JavaScript، يمكن أن يؤدي ذلك إلى فقدان الدقة في بعض الحالات بسبب تمثيل الأعداد في JavaScript باستخدام تنسيق 64 بت للأرقام الثنائية (double-precision floating-point format).

لتجنب فقدان الدقة، يمكنك استخدام نوع BigInt على نحو:

const binaryString = '0000011110000111111110000';
const decimalNumber = BigInt(`0b${binaryString}`);
console.log(decimalNumber);

يعطيني رساله can not convert 0b to a bigInt

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 12 ساعة قال Ahmed Ebrahim11:

يعطيني رساله can not convert 0b to a bigInt

تأكد من أن لا تضع القيمة مباشرة بداخل الأقواس المعقوفة، النتيجة يجب أن تبدوا كـ: 

const binaryString = '0000011110000111111110000';
const decimalNumber = BigInt(`0b${binaryString}`);
console.log(decimalNumber);

او مباشرة: 

const decimalNumber = BigInt(`0b0000011110000111111110000`);
console.log(decimalNumber);
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ منذ ساعة مضت قال Adnane Kadri:

تأكد من أن لا تضع القيمة مباشرة بداخل الأقواس المعقوفة، النتيجة يجب أن تبدوا كـ: 

const binaryString = '0000011110000111111110000';
const decimalNumber = BigInt(`0b${binaryString}`);
console.log(decimalNumber);

او مباشرة: 

const decimalNumber = BigInt(`0b0000011110000111111110000`);
console.log(decimalNumber);

حسنا ولكني اخزن الرقم ف n 

واضع n ف bigInt لكي يصبح الكود متاح لأي رقم

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...