أعداد الأرقام الثمانية:متى؟لماذا؟أبدًا؟[مغلق]

StackOverflow https://stackoverflow.com/questions/44569

  •  09-06-2019
  •  | 
  •  

سؤال

لم أستخدم مطلقًا الأرقام الثمانية في الكود الخاص بي ولم أجد أي كود يستخدمها (على الرغم من النظام السداسي العشري والتلاعب بالبت).

لقد بدأت البرمجة باستخدام C/C++ في عام 1994 تقريبًا، لذا ربما لا زلت صغيرًا جدًا على ذلك؟هل يستخدم الكود الأقدم الرقم الثماني؟تتضمن لغة C دعمًا لهذه العناصر من خلال إضافة 0، ولكن أين هو الكود الذي يستخدم هذه الأرقام الحرفية ذات الرقم 8؟

هل كانت مفيدة؟

المحلول

لقد اضطررت مؤخرًا إلى كتابة رمز بروتوكول الشبكة الذي يصل إلى حقول 3 بت.يكون Octal مفيدًا عندما تريد تصحيح ذلك.

فقط للتأثير، هل يمكن أن تخبرني ما هي حقول 3 بت من هذا؟

0x492492

من ناحية أخرى، هذا الرقم نفسه في الثماني:

022222222

الآن، أخيرًا، بشكل ثنائي (في مجموعات مكونة من 3):

010 010 010 010 010 010 010 010

نصائح أخرى

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

على سبيل المثال0755 (أيضًا 755 فقط مع معظم أدوات سطر الأوامر) يعني أن مالك الملف لديه الأذونات الكاملة (القراءة والكتابة والتنفيذ)، وأن المجموعة والمستخدمين الآخرين لديهم أذونات القراءة والتنفيذ فقط.

إن تمثيل هذه البتات بالنظام الثماني يجعل من السهل معرفة الأذونات التي تم تعيينها.يمكنك معرفة ما يعنيه 0755 بنظرة سريعة، ولكن ليس 493 أو 0x1ed.

من ويكيبيديا

في الوقت الذي أصبحت فيه Octal في الأصل تستخدم على نطاق واسع في الحوسبة ، تستخدم أنظمة مثل IBM Mainframes كلمة 24 بت (أو 36 بت).كان Octal اختصارًا مثاليًا للثنائي لهذه الآلات لأن ثمانية أرقام (أو اثني عشر) يمكن أن تعرض بإيجاز كلمة آلة كاملة (كل رقم ثماني يغطي ثلاثة أرقام ثنائية).كما أنه يقلل التكاليف عن طريق السماح بأنابيب Nixie ، وشاشات العرض المكونة من سبعة أجزاء ، وحساب الآلات الحاسبة لاستخدامها في لوحات المفاتيح المشغل ؛عندما كانت العروض الثنائية معقدة للغاية ، كانت العروض العشرية تحتاج إلى أجهزة معقدة لتحويل الذرات ، والعروض السداسية اللازمة لعرض الحروف.

ومع ذلك ، تستخدم جميع منصات الحوسبة الحديثة كلمات 16 أو 32 أو 64 بت ، مع ثمانية أجزاء تشكل بايت.على مثل هذه الأنظمة ، ستكون هناك حاجة إلى ثلاثة أرقام ثماني ، حيث تمثل أهم أرقام ثماني أرقامًا ثنائية الأبعاد فقط رقمين ثنائيين (وفي سلسلة نفس الرقم الثماني ، يمثل رقمًا ثنائيًا واحدًا من البايت التالي).وبالتالي ، يتم استخدام السداسي عشري بشكل أكثر شيوعًا في لغات البرمجة اليوم ، حيث أن الرقم السداسي السداسي يغطي أربعة أرقام ثنائية وجميع منصات الحوسبة الحديثة لها كلمات آلية قابلة للقسمة بالتساوي على أربعة.لا تزال بعض المنصات التي تحتوي على حجم كلمة اثنان من الكلمات تحتوي على كلمات فرعية تعليمية يمكن فهمها بسهولة أكبر إذا تم عرضها في Octal ؛وهذا يشمل PDP-11.تنتمي بنية X86 في كل مكان في العصر الحديث إلى هذه الفئة أيضًا ، ولكن لا يتم استخدام Octal أبدًا على هذا النظام الأساسي.

-آدم

لم أستخدم أبدًا أرقام ثماني في الكود الخاص بي ولا أتوصل إلى أي رمز استخدمه.

أراهن لديك.وفقا للمعيار، فإن القيم الحرفية الرقمية التي تبدأ بالصفر هي ثماني.وهذا يشمل، بشكل تافه، 0.في كل مرة استخدمت فيها أو رأيت صفرًا حرفيًا، كان هذا صفرًا ثمانيًا.غريب لكن صحيح.:-)

يستخدم الطيران التجاري "التسميات" الثماني (معرفات نوع الرسالة بشكل أساسي) في معيار الحافلات Arinc 429 الموقر.لذا فإن القدرة على تحديد قيم التسمية بالنظام الثماني عند كتابة التعليمات البرمجية لتطبيقات إلكترونيات الطيران أمر جيد ...

لقد رأيت أيضًا الثماني المستخدم في أجهزة الإرسال والاستقبال للطائرات.رمز جهاز الإرسال والاستقبال mode-3a هو رقم مكون من 12 بت يتعامل معه الجميع على أنه 4 أرقام ثمانية.هناك المزيد من المعلومات حول ويكيبيديا.أعلم أن الأمر لا يتعلق بالكمبيوتر بشكل عام، لكن إدارة الطيران الفيدرالية تستخدم أجهزة الكمبيوتر أيضًا :).

إنه مفيد لل chmod و mkdir وظائف في أرض يونكس، ولكن بصرف النظر عن ذلك لا أستطيع التفكير في أي استخدامات مشتركة أخرى.

لقد تواصلت مع أوكتال من خلال بي دي بي-11, وهكذا، على ما يبدو، فعلت لغة C :)

تقوم ملفات tar بتخزين المعلومات كسلسلة قيمة عددية ثمانية

لا يوجد سبب أرضي لتعديل معيار يعود إلى ولادة اللغة والموجود في أعداد لا حصر لها من البرامج.ما زلت أتذكر شخصيات ASCII بقيمها الثمانية ، يجب أن أفكر في التوصل إلى قيمة سداسية A ، لكنها 101 في Octal ؛الرقم 0 هو 060...^ ج هو 003...

وهذا يعني أنني كثيرًا ما أستخدم التمثيل الثماني.

الآن، إذا كنت تريد حقًا ثني منجمك، فقم بإلقاء نظرة على تنسيق الكلمات الخاص بـ PDP-10...

لا تزال هناك مجموعة من أنظمة التحكم في العمليات القديمة (Honeywell H4400، H45000، إلخ) الموجودة في أواخر الستينيات والسبعينيات والتي تم ترتيبها لاستخدام كلمات 24 بت مع معالجة ثماني.فكر في متى تم إنشاء آخر محطات الطاقة النووية في الولايات المتحدة كمثال.

يعد استبدال هذه الأنظمة الصناعية مهمة كبيرة جدًا، لذا قد تكون محظوظًا بما يكفي لمصادفة واحدة في البرية قبل أن تنقرض وتندهش من تنسيقات الفاصلة العائمة المخصصة الرائعة!

أي شخص تعلم البرمجة على PDP-8 لديه نقطة دافئة في قلبه للأرقام الثمانية.كان حجم الكلمة 12 بت مقسمة إلى 4 مجموعات كل منها 3 بت، لذلك -1 كان 7777 ثمانيًا.تم استمرار هذا المخطط في PDP-11 الذي كان يحتوي على كلمات مكونة من 16 بت ولكنه لا يزال يستخدم التمثيل الثماني لأشياء مختلفة، ومن هنا جاء نظام أذونات الملف *NIX الذي لا يزال موجودًا حتى يومنا هذا.

كان Octal مفيدًا للغاية مع أول جهاز عرض متاح (شاشات عرض مكونة من 7 أجزاء).لم يكن لدى هذه الشاشات الأصلية أجهزة فك التشفير المتوفرة لاحقًا.

وبالتالي تم تجميع مخرجات السجل الرقمي لتناسب شاشة العرض المتوفرة والتي كانت قادرة على عرض ثمانية (8) رموز فقط:0,1,2 3,4,5,6,7 .

كما كانت أنابيب عرض CRT الأولى عبارة عن شاشات مسح نقطية وكانت أبسط مولدات رموز الأحرف مكافئة لشاشات العرض المكونة من 7 أجزاء.

كان السائق المحفز، كما هو الحال دائمًا، هو العرض الأقل تكلفة على الإطلاق.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top