هل تكملة المرء قضية واقعية أم مجرد قضية تاريخية؟

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

  •  03-07-2019
  •  | 
  •  

سؤال

سؤال آخر سئل عن تحديد الفردي/الزوجي في لغة C، وتم وضع علامة بشكل صحيح على النهج الاصطلاحي (x & 1) على أنه معطل لـ الشخص على أساس مكمل الأنظمة التي يسمح بها معيار C.

هل الأنظمة موجودة بالفعل في "العالم الحقيقي" خارج متاحف الكمبيوتر؟لقد بدأت البرمجة منذ السبعينيات وأنا متأكد من أنني لم أقابل مثل هذا الوحش من قبل.

هل يقوم أي شخص بالفعل بتطوير أو اختبار التعليمات البرمجية لمثل هذا النظام؟وإذا لم يكن الأمر كذلك، فهل يجب أن نقلق بشأن مثل هذه الأشياء أم يجب أن نضعها فيها الغرفة 101 مع الشريط الورقي والبطاقات المثقبة...؟

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

المحلول

وعن هذا الامر لمعرفة جذورك.
نعم، هذه هي الناحية الفنية التقنية القديمة وأنا ربما تفعل ما اقترح أشخاص آخرين في هذا السؤال واستخدام المشغل مودولو (٪) لتحديد الغريب أو حتى. ولكن فهم ما مكمل 1S (أو تكملة 2S) هو دائما شيء جيد أن نعرف. أم لا من أي وقت مضى يمكنك استخدامها، وحدة المعالجة المركزية الخاصة بك هو التعامل مع هذه الأمور طوال الوقت. لذلك لا يمكن أبدا أن يصب لفهم هذا المفهوم. الآن، وأنظمة حديثة تجعل من ذلك كنت عموما لا داعي للقلق حول أشياء من هذا القبيل لذلك أصبح موضوعا للبرمجيات 101 دورات في الطريق. ولكن عليك أن تتذكر أن بعض الناس في الواقع لا تزال تستخدم هذا في "العالم الحقيقي" ... على سبيل المثال، خلافا للاعتقاد الشائع هناك أناس <م> لا تزال تستخدم التجمع! ليست كثيرة، ولكن حتى وحدات المعالجة المركزية يمكن أن نفهم الخام C # وجافا، <م> شخص سوف لا تزال بحاجة الى فهم هذه الاشياء.

وهيك، لا احد يعرف متى قد تجد نفسك تفعل شيئا حيث تحتاج فعلا لأداء الرياضيات الثنائية والتي تكمل 1S يمكن أن تأتي في متناول اليدين.

نصائح أخرى

وأعمل في مجال القياس ولدينا بعض العملاء لدينا التناظرية إلى الرقمية المحولات القديمة التي لا تزال تستخدم مكمل 1 ل. أود فقط أن كتابة التعليمات البرمجية في اليوم الآخر لتحويل من تكملة 1 لتكملة 2 من أجل تعويض.

ولذا نعم، انها لا تزال هناك (ولكن كنت لن تصل إلى ذلك في كثير من الأحيان).

يحدد RFC 791 p.14 المجموع الاختباري لرأس IP على النحو التالي:

حقل المجموع الاختباري هو المكمل المكون من 16 بت للمجموع المكمل لكل الكلمات المكونة من 16 بت في الرأس.لأغراض حساب المجموع الاختباري، تكون قيمة حقل المجموع الاختباري صفرًا.

لذلك لا يزال تكملة المرء بشدة المستخدمة في العالم الحقيقي، في كل حزمة IP يتم إرسالها.:)

ومركز السيطرة على الأمراض سايبر 18 اعتدت مرة أخرى في '80 كان الجهاز تكملة 1S، ولكن هذا قبل ما يقرب من 30 عاما، وأنا لم أر واحدة منذ (مع ذلك، أنه كان أيضا آخر مرة عملت على عدم PC)

ولم يسبق لي ان واجهت النظام مكملا لاحد، ولقد تم ترميز طالما لديك.

ولكن أنا لم تواجه 9 نظام مكمل - لغة الآلة الحاسبة HP-41C. أنا أعترف أن هذا يمكن اعتبار عفا عليها الزمن، وأنا لا أعتقد أن لديهم أي وقت مضى مترجم C لهؤلاء.

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

والقضايا التي من المرجح أن تصل الى على الجانب الصحيح هي القضايا endian (I 'م ينظرون إليك PDP ). أيضا، عليك أن تصل إلى أكثر من ذلك "العالم الحقيقي" (أي اليوم) القضايا مع يتحرك <ل أ href = "http://en.wikipedia.org/wiki/IEEE_754-2008" يختلط = "noreferrer"> نقطة <لأ href = "http://en.wikipedia.org/wiki/IBM_Floating_Point_Architecture" يختلط = "noreferrer"> أشكال مما كنت سوف عدد صحيح الأشكال.

والطريف، يطلب من الناس أن السؤال نفسه على comp.std.c <م> في عام 1993 و <م> لا أحد يمكن أن تشير إلى جهاز مكمل واحد التي كانت تستخدم في ذلك الوقت .

ولذا نعم، أعتقد أننا يمكن أن أقول بثقة أن تكمل واحد ينتمي إلى زاوية مظلمة من تاريخنا، ميتة عمليا، وليس مصدر قلق بعد الآن.

قررت أن أجد واحدة.تحتوي أنظمة Unisys ClearPath على أنسي مترجم C (نعم يسمونه "المعيار الوطني الأمريكي C" والذي تم تحديث وثائق PDF الخاصة به آخر مرة في عام 2013.الوثائق متاحة متصل;

هناك، تستخدم جميع الأنواع الموقعة التمثيل المكمل، مع الخصائص التالية:

Type                 | Bits | Range
---------------------+------+-----------------
signed char          |   9  |  -2⁸+1 ...  2⁸-1
signed short         |  18  | -2¹⁷+1 ... 2¹⁷-1
signed int           |  36  | -2³⁵+1 ... 2³⁵-1
signed long int      |  36  | -2³⁵+1 ... 2³⁵-1
signed long long int |  72  | -2⁷¹+1 ... 2⁷¹-1

ومن اللافت للنظر أنه يدعم أيضًا بشكل افتراضي عدم المطابقة unsigned int و unsigned long, ، والتي تتراوح من 0 ... 2³⁶ - 2, ، ولكن يمكن تغييره إلى 0 ... 2³⁶ - 1 مع براغما.

هل تكملة المرء قضية واقعية أم مجرد قضية تاريخية؟

نعم، لا يزال يستخدم.حتى أنها تستخدم في معالجات إنتل الحديثة.من دليل مطور برامج الهندسة المعمارية Intel® 64 وIA-32 2أ، الصفحات 3-8:

3.1.1.8 قسم الوصف

يتم بعد ذلك وصف كل تعليمات بعدد أقسام المعلومات.يصف قسم "الوصف" الغرض من التعليمات والمعاملات المطلوبة بمزيد من التفصيل.

ملخص المصطلحات التي يمكن استخدامها في قسم الوصف:
* إرث SSE:يشير إلى SSE وSSE2 وSSE3 وSSSE3 وSSE4 وAESNI وPCLMULQDQ وأي مجموعات تعليمات مستقبلية تشير إلى سجلات XMM ومشفرة بدون بادئة VEX.
* فيكس.فففف.يحدد حقل البت VEX سجل المصدر أو الوجهة (في النموذج التكميلي 1).
* rm_field:اختصار لحقل ModR/M r/m وأي REX.B
* حقل التسجيل:اختصار لحقل تسجيل ModR/M وأي REX.R

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