Base36

Base36 هو ترميز ثنائي إلى نصي يُمثل البيانات الثنائية في صيغة سلسلة ASCII عن طريق ترجمتها إلى تمثيل أساسه 36. يُعد اختيار 36 مناسبًا لأن الأرقام يمكن تمثيلها باستخدام الأرقام من 0 إلى 9 والحروف az [ 1 ] ( الأحرف اللاتينية الأساسية ISO الصغيرة ).

يحتوي كل رقم في النظام العددي ذي الأساس 36 على ما يقارب 5.17 بت من المعلومات، أي ما يعادل لوغاريتم 2 (36) ≈ 5.17 بت ، لذا فإن ستة بتات كافية لتمثيل كل رقم. ويمكن أيضًا توسيع الأعداد ذات الأساس 36 إلى أزواج من الأرقام السداسية (الأساس 6).

تحويل

لا تستوعب الأعداد الصحيحة الموقعة ذات 32 بت و 64 بت أكثر من 6 أو 13 رقمًا في النظام الست عشري، على التوالي (قد يتجاوز هذا العدد من أرقام النظام الست عشري سعة الأعداد الصحيحة ذات 32 بت و64 بت). على سبيل المثال، القيمة القصوى للعدد الصحيح الموقع ذي 64 بت " 9223372036854775807 " هي " 1Y2P0IJ32E8E7 " في النظام الست عشري. وبالمثل، القيمة القصوى للعدد الصحيح الموقع ذي 32 بت " 2147483647 " هي " ZIK0ZJ " في النظام الست عشري.

التطبيقات القياسية

تدعم مكتبة C القياسية منذ C89 الأرقام ذات الأساس 36 عبر وظائف strtol و strtoul [ 2 ]

في معيار Common Lisp (ANSI INCITS 226-1994)، parse-integerتدعم وظائف مثل الأساس من 2 إلى 36. [ 3 ]

يدعم Java SE التحويل من/إلى السلاسل النصية إلى قواعد مختلفة من 2 إلى 36. على سبيل المثال،و

تمامًا مثل لغة جافا ، تدعم لغة جافا سكريبت أيضًا التحويل من/إلى سلسلة نصية إلى قواعد مختلفة من 2 إلى 36.

تدعم لغة PHP ، مثل لغة Java، التحويل من/إلى سلسلة نصية إلى قواعد مختلفة من 2 إلى 36 باستخدام دالة base_convert ، المتوفرة منذ PHP 4.

تدعم لغة Go تحويل السلاسل النصية إلى أنظمة ترقيم مختلفة من 2 إلى 36 باستخدام الدوال المدمجة ، strconv.FormatInt()[ 4 ] [ 5 ] ، كما تدعم تحويل السلاسل النصية المشفرة بأنظمة ترقيم مختلفة من 2 إلى 36 باستخدام الدوال المدمجة . [ 6 ] [ 7 ]strconv.FormatUint()strconv.ParseInt()strconv.ParseUint()

تسمح لغة بايثون بتحويل السلاسل النصية من النظام ذي الأساس 2 إلى النظام ذي الأساس 36. [ 8 ]

يدعم Raku جميع أنواع الأرقام الحقيقية من الأساس 2 إلى الأساس 36 باستخدام الدوال المضمنة: base[ 9 ] و [ 10 ]parse-base .

انظر أيضاً

مراجع