الفريق العربي للهندسة العكسية
1.4.18 أرقام العشري المُشفرة بالنظام الثنائي - Binary-Coded Decimal (BCD) Numbers - نسخة قابلة للطباعة

+- الفريق العربي للهندسة العكسية (https://www.at4re.net/f)
+-- قسم : منتديات البرمجة - Programming Forums (https://www.at4re.net/f/forum-5.html)
+--- قسم : البرمجة بالأسمبلي - Assembly Section (https://www.at4re.net/f/forum-16.html)
+--- الموضوع : 1.4.18 أرقام العشري المُشفرة بالنظام الثنائي - Binary-Coded Decimal (BCD) Numbers (/thread-3979.html)



1.4.18 أرقام العشري المُشفرة بالنظام الثنائي - Binary-Coded Decimal (BCD) Numbers - R333T - 15-05-2024

[صورة مرفقة: dark.jpg]
 رحلة في عالم الأسمبلي   dance
 
https://www.youtube.com/playlist?list=PL..._swadKSPga

# الفصل 0 : تمهيد # الفصل 1 : المفاهيم الأساسية في لغة الassembly
 


 أرقام العشري المُشفرة بالنظام الثنائي
 Binary-Coded Decimal (BCD) Numbers


أرقام العشري المُشفرة بالنظام الثنائي (BCD)

يمكن تخزين القيم العشرية في تمثيلين عامين، المعروفين عادةً بـ BCD المعبأة و BCD غير المعبأة، حيث يُشير BCD إلى النظام الثنائي المُشفر بالعشري. تعتمد هذه التمثيلات على حقيقة أن يمكن تمثيل الرقم العشري بحد أقصى من 4 بت ثنائية، من 0000 إلى 1001.

BCD غير المعبأة - Unpacked
في BCD غير المعبأة، يُشفر رقم عشري واحد في كل بايت ثنائي. على سبيل المثال، يمكن تخزين القيمة 1,234,567 كمصفوفة من البايتات: 01، 02، 03، 04، 05، 06، 07، موضحة هنا بتنسيق السداسي عشر. إذا حدث الرقم العشري الأعلى أولاً في التسلسل، نسمي ذلك بالترتيب الكبير الأكثر أهمية. على العكس من ذلك، يُسمى الترتيب الآخر بالترتيب الصغير الأكثر أهمية. يمكن أن تكون الأرقام في تنسيق BCD غير المعبأة طولها أي طول يرغب فيه المبرمج ويمكن ترجمتها بسهولة إلى شخصيات ASCII قابلة للعرض (من خلال إضافة 30h) إلى كل بايت. على سبيل المثال، إذا قمت بإضافة 30h إلى القيمة BCD غير المعبأة 07، فإن النتيجة (37h) هي الترميز ASCII للحرف القابل للعرض "7".

BCD المعبأة - Packed
في تنسيق BCD المعبأة، يُشفر رقمان عشريان في كل بايت ثنائي. على سبيل المثال، يمكن تخزين القيمة 1,234,567 كمصفوفة من البايتات (موضحة هنا بالسداسي) كـ 01، 23، 45، 67. نظرًا لأن هناك عددًا فرديًا من الأرقام، يمكن أن تكون الأرقام الأربعة العلوية للبايت الأول جميعها صفراء، أو يمكن استخدامها لتمثيل علامة الرقم. (هناك أنماط قياسية من 4 بت للإشارة إلى ما إذا كان الرقم إيجابيًا أو سلبيًا، ولكننا لن ندخل في ذلك هنا.)

تُستخدم أرقام العشري المُشفرة بالنظام الثنائي في كثير من الأحيان عند تمثيل الأرقام التي تتطلب دقة دقيقة. في لغات مثل جافا أو C++، تحتوي القيم العائمة على خصائص تقريب معينة تجعل من الصعب مقارنتها للمساواة. يتم تكبير أخطاء التقريب الصغيرة عند تكرار الحسابات. ومع ذلك، تتمتع قيم BCD بدقة ومدى تقريبي غير محدودين تقريبًا. مثال جيد على ذلك هو فئة Big Integer في مكتبة فئات جافا.

 nice