Saturday, 2 December 2017

اليمين ثنائي خيارات الحسابي - التحول


عند تحويل اليسار، لا يوجد فرق بين الحساب والتحول المنطقي. عند تحويل اليمين، يعتمد نوع التحول على نوع القيمة التي يتم تغييرها. (كخلفية لأولئك القراء غير مألوفين للفرق، تحول حق منطقي بمقدار 1 بت يحول كل البتات إلى اليمين ويملأ البتة في أقصى اليسار مع 0. ويتحول التحول الحسابي إلى القيمة الأصلية في أقصى اليسار، ويصبح الفرق مهم عند التعامل مع الأرقام السالبة.) عند تحويل قيمة غير موقعة، المشغل في C هو تحول منطقي. عند تحويل قيمة موقعة، المشغل هو التحول الحسابي. على سبيل المثال، على افتراض آلة 32 بت: أجاب 11 أغسطس 08 في 9:16 قريبا جدا، جريج. تفسيرك هو الكمال تقريبا، ولكن تحويل التعبير عن نوع وقعت والقيمة السلبية هو تحديد التنفيذ. انظر إيزويك 9899: 1999 القسم 6.5.7. نداش روب سبتمبر 22 08 في 22:53 روب: في الواقع، لنقلة اليسار ووقع عدد سلبي، والسلوك غير معروف. نداش جيرميب أبر 4 12 في 15:24 في الواقع، يؤدي التحول الأيسر أيضا إلى سلوك غير معرف للقيم الموقعة الإيجابية إذا كانت القيمة الرياضية الناتجة (والتي تكون محدودة في حجم البتات) يمكن تمثيلها 39t كقيمة موجبة في هذا النوع الموقع. وخلاصة القول هو أن لديك لفقي بعناية عند الحق في تحويل قيمة موقعة. نداش مايكل بير جون 21 13 في 0:30 الأول هو الفرق بين التحولات المنطقية والحسابية من وجهة نظر رياضية، دون الحاجة إلى القلق حول حجم نوع البيانات. التحولات المنطقية تملأ دائما بت المهملة مع الأصفار في حين أن التحول الحسابي يملأ مع الأصفار فقط لليسار التحول، ولكن لليمين التحول فإنه نسخ مسب وبالتالي الحفاظ على علامة من المعامل (على افتراض تكملة اثنين تكملة للقيم السلبية). وبعبارة أخرى، فإن التحول المنطقي ينظر إلى المعامل المتحول على أنه مجرد تدفق من البتات ونقلها، دون الإزعاج من علامة القيمة الناتجة. التحول الحسابي ينظر إليه باعتباره عدد (توقيع) ويحافظ على علامة كما يتم إجراء تحولات. ويعني التحول الحسابي الأيسر لعدد X من n إلى ضرب X بمقدار 2 n، وهو ما يعادل بالتالي التحول الأيسر المنطقي، أي أن التحول المنطقي سيعطي نفس النتيجة أيضا لأن مسب يتوقف على أي حال عن النهاية ولا يحفظ أي شيء. إن التحول الحسابي الصحيح لعدد X من n يساوي التقسيم الصحيح لل X بمقدار 2 n فقط إذا كان X هو قسم صحيح غير سالب ليس سوى تقسيم رياضي ومستدير نحو 0 (ترونك). أما بالنسبة للأرقام السالبة الممثلة بتشفير تكميلي مزدوج، فإن تحويل اليمين بواسطة n بت له تأثير تقسيمه رياضيا بمقدار 2 n والتقريب نحو (الأرض)، وبالتالي فإن التغير الصحيح يختلف عن القيم غير السلبية والسلبية. ل X 0، X n X 2 n ترونك (X 2 n) ل X لوت 0، X ن الكلمة (X 2 n) حيث هو تقسيم الرياضية، هو تقسيم صحيح. يتيح النظر إلى مثال: 37 2 18 (التقريب 18.5 نحو 0) 10010) 2 نتيجة التحول الصحيح الحسابي -37) 10 11011011) 2 (النظر في تكملة مزدوجة، تمثيل 8 بت) -37 2 -18 (التقريب 18.5 نحو 0) 11101110) 2 ليس نتيجة الحول الصحيح الحسابي -37 1 -19 (التقريب 18.5 نحو) 11101101) 2 نتيجة التحول الصحيح الحسابي كما أشار غي ستيل. وقد أدى هذا التناقض إلى أخطاء في أكثر من مترجم واحد. هنا غير سلبية (الرياضيات) يمكن تعيينها إلى غير موقعة وتوقيع القيم غير السلبية (C) يتم التعامل على حد سواء يتم التعامل مع نفسه وتحويلها الصحيح عن طريق تقسيم صحيح. لذلك المنطقية والحسابية تعادل في التحول الأيسر والقيم غير السالبة في الحق في تغيير في التحول الصحيح من القيم السلبية التي تختلف. أنواع التشغيل والنتائج المعيار C99 6.5.7: يكون لكل من المعامل أنواع صحيحة. يتم تنفيذ الترقيات صحيح على كل من المعاملات. ويكون نوع النتيجة هو المعامل الأيسر الذي يتم ترقيته. إذا كانت قيمة المعامل الأيمن سالبة أو أكبر من أو تساوي عرض المعامل الأيسر الذي تم ترقيته، فإن السلوك غير محدد. في المقتطف أعلاه، يصبح كلا المشغلين إنت (بسبب ترقية عدد صحيح) إذا كان E2 سلبيا أو E2 سيزوف (إنت) شاربيت ثم العملية غير معرفة. وذلك لأن تحويل أكثر من البتات المتاحة من المؤكد أن يذهب إلى تجاوز. وقد أعلن R قصيرة. فإن النتيجة النتیجة لعملیة التحول سیتم تحویلھا ضمنا إلی تحویل تضيیحي قصیر، مما قد یؤدي إلی سلوك محدد بالتنفیذ إذا لم یتم تمثیل القیمة في نوع الوجھة. تحول اليسار نتيجة E1 لتل E2 هي E1 اليسار تحولت مواقف E2 بت شغلت بت شغلها مع الأصفار. إذا كان E1 لديه نوع غير موقعة، تكون قيمة النتيجة E12 E2. تخفيض مودولو واحد أكثر من القيمة القصوى التي يمكن تمثيلها في نوع النتيجة. إذا كان E1 له نوع موقع وقيمة غير سالبة، و E12 E2 يمكن تمثيله في نوع النتيجة، فإن هذه هي القيمة الناتجة بخلاف ذلك، فإن السلوك غير محدد. كما يتحول اليسار هي نفسها لكليهما، يتم ملء البتات إخلاء ببساطة مع الأصفار. ثم تنص على أنه بالنسبة لكل من الأنواع غير الموقعة والتوقيع عليها تحول في الحساب. إيم تفسيره على أنه التحول الحسابي منذ التحولات المنطقية لا يزعج حول القيمة التي تمثلها بت، فإنه ينظر فقط في ذلك على أنه تيار من بت ولكن المحادثات القياسية ليس من حيث بت، ولكن من خلال تعريفه من حيث القيمة التي تم الحصول عليها من قبل نتاج E1 مع 2 E2. التنبيه هنا هو أنه بالنسبة للأنواع الموقعة يجب أن تكون القيمة غير سلبية ويجب أن تكون القيمة الناتجة ممثلة في نوع النتيجة. وإلا فإن العملية غير محددة. ويكون نوع النتيجة هو نوع E1 بعد تطبيق الترقية المتكاملة وليس الوجهة (المتغير الذي سيحمل النتيجة). يتم تحويل القيمة الناتجة ضمنيا إلى نوع الوجهة إذا لم يتم تمثيلها في هذا النوع، ثم يتم تعريف التنفيذ (C99 6.3.1.33). إذا كان E1 نوع موقعة مع قيمة سالبة، فإن سلوك التحويل الأيسر غير محدد. هذا هو الطريق السهل إلى السلوك غير معروف والتي يمكن بسهولة تجاهلها. التحول اليمنى نتيجة E1 E2 هي E1 مواقف E2 بتغيير اليمين. إذا كان E1 لديه نوع غير موقعة أو إذا كان E1 نوع موقعة وقيمة غير سالبة، تكون قيمة النتيجة جزءا لا يتجزأ من حاصل E12 E2. إذا كان E1 نوع موقعة وقيمة سالبة، يتم تعريف القيمة الناتجة بالتنفيذ. التحول الصحيح للقيم غير الموقعة والموقعة غير السلبية هي جميلة مباشرة إلى الأمام يتم ملء بت شاغرة مع الأصفار. بالنسبة إلى القيم السلبية الموقعة، يتم تحديد نتيجة التغيير الصحيح. ومع ذلك، فإن معظم تطبيقات مثل دول مجلس التعاون الخليجي و فيسوال C تنفذ التحول الصحيح كما تحول الحساب من خلال الحفاظ على بت علامة. الخلاصة على عكس جافا، التي لديها غغتغت المشغل الخاص للتحول المنطقي وبصرف النظر عن غتغ المعتادة و لتلت. C و C فقط تحول الحساب مع بعض المناطق ترك غير محددة ومعرفة من قبل التنفيذ. ويرجع السبب الذي أراه إليهم على أنه الحساب إلى الصيغة المعيارية للعملية حسابيا بدلا من معالجة المعامل المتحول كتدفق من البتات، وهذا هو السبب الذي يجعلها تترك تلك المناطق غير محددة، بدلا من مجرد تعريف جميع الحالات على أنها تحولات منطقية. من حيث نوع التحول الذي تحصل عليه، والشيء المهم هو نوع من القيمة التي كنت تتحول. مصدر الكلاسيكي من البق هو عند التحول الحرفي، على سبيل المثال، قناع قبالة بت. على سبيل المثال، إذا أردت إسقاط الجزء الأيسر الأيسر من عدد صحيح غير موقعة، فربما تحاول ذلك كقناعك: للأسف، سيؤدي ذلك إلى حدوث مشكلة لأن القناع سيكون لديه كل بته المحددة لأن القيمة التي تم تغييرها (0)، وبالتالي يتم إجراء تحول حسابي. وبدلا من ذلك، تود أن تفرض تحولا منطقيا من خلال الإعلان صراحة عن قيمة غير موقعة، بمعنى أن تفعل شيئا من هذا القبيل: حسنا، نظرت إليه على ويكيبيديا. ولديهم هذا القول: C، ومع ذلك، لديه واحد فقط مشغل التحول الصحيح،. ويختار العديد من المترجمين C التحول الصحيح لأداء اعتمادا على ما هو نوع من عدد صحيح يتم نقلها في كثير من الأحيان يتم نقل الأعداد الصحيحة الموقعة باستخدام التحول الحسابي، ويتم تحويل الأعداد الصحيحة غير الموقعة باستخدام التحول المنطقي. لذلك يبدو مثل ذلك يعتمد على مترجم الخاص بك. أيضا في هذه المقالة، لاحظ أن التحول اليسار هو نفسه للحساب والمنطقية. أنصح بإجراء اختبار بسيط مع بعض الأرقام الموقعة وغير الموقعة على حالة الحدود (مجموعة بت عالية بالطبع) ونرى ما هي النتيجة على مترجم الخاص بك. كما أوصي بتجنب الاعتماد على كونها واحدة أو أخرى لأنه يبدو C ليس له معيار، على الأقل إذا كان معقولا وممكنا لتجنب هذا الاعتماد. أجاب 11 أغسطس 08 في 9:18 على الرغم من أن معظم المبرمجين C المستخدمة لديها اليسار اليسار التحول للقيم الموقعة، يبدو أن هذا السلوك مفيد تم إهمالها. ويبدو أن فلسفة المترجم الحالية تفترض أن أداء نوبة اليسار على متغير يخول المترجم أن يفترض أن المتغير يجب أن يكون غير سالب وبالتالي حذف أي رمز في مكان آخر من شأنه أن يكون ضروريا للسلوك الصحيح إذا كان المتغير سلبيا . نداش سوبيركات أبر 16 15 في 5:47 اليسار تحول لتل هذا هو بطريقة أو بأخرى سهلة وكلما كنت تستخدم مشغل التحول، هو دائما عملية الحكمة قليلا، لذلك نحن غير قادر على استخدامها مع عملية مزدوجة وتطفو. كلما تركنا التحول واحد الصفر، يتم إضافته دائما إلى أقل قليلا بت (لسب). ولكن في التحول الصحيح علينا اتباع قاعدة إضافية واحدة وتسمى هذه القاعدة نسخة بت إشارة. معنى نسخة بتة الإشارة هو إذا تم تعيين البتة الأكثر أهمية (مسب) ثم بعد تحول يمين مرة أخرى سيتم تعيين مسب إذا تم إعادة تعيين ثم إعادة تعيين مرة أخرى، يعني إذا كانت القيمة السابقة صفر ثم بعد التحول مرة أخرى، بت صفر إذا كانت البتة السابقة واحدة ثم بعد التحول مرة أخرى. لا تنطبق هذه القاعدة على التحول الأيسر. المثال الأكثر أهمية على التحول الصحيح إذا قمت بتحويل أي رقم سلبي إلى التحول الصحيح، ثم بعد بعض التحول قيمة تصل أخيرا إلى الصفر ثم بعد ذلك إذا تحول هذا -1 أي عدد من المرات ستبقى القيمة نفسها. يرجى المراجعة. أفاتار مار 30 14 في 11: 04 رايت الآن أنا قراءة كتاب أنظمة الكمبيوتر. مبرمج منظور. مشكلة واحدة في الكتاب يقول لأداء التحول الصحيح المنطقي على عدد صحيح وقع، لا أستطيع معرفة كيفية البدء في هذا. وفيما يلي السؤال الفعلي من الكتاب. قم بملء التعليمات البرمجية لوظائف C التالية. تقوم الدالة سرل بتحويل شکل حقیقي منطقي باستخدام إزاحة حقیة حسابیة (تعطیھا القیمة زسرا)، وتتبعھا عملیات أخرى لا تشمل التحولات الصحیحة أو التقسیم. تقوم الدالة سرا بتحويل الحق في الحساب باستخدام إزاحة حق منطقية (تعطى بالقيمة زسرل)، تليها عمليات أخرى لا تشمل التحولات الصحيحة أو التقسيم. يمكنك استخدام حساب 8sizeof (إنت) لتحديد w، عدد البتات في إنت نوع البيانات. يمكن أن تتراوح كمية التحول k من 0 إلى w 1. آمل أن نفهم الآن السؤال. سأل 27 يوليو 13 في 03:18 لن أعطيك إجابة كاملة لأن هذا هو على ما يبدو الواجبات المنزلية، ولكن إل تعطيك بعض تلميحات لمساعدتك على العمل بها لنفسك: من أجل التحول الصحيح المنطقي من N بت تحتاج إلى مسح أعلى N بت من النتيجة بعد التحول الحسابي يمكنك مسح بت في قيمة من خلال تطبيق قناع مناسب. وعادة ما تستخدم بتاتا و أند أو شور لمسح البتات N العليا للقيمة التي تحتاج إلى قناع مع N 0s والبتات المتبقية 1 يمكنك إنشاء قناع مناسب باستخدام التحول الأيسر من W - N بت، حيث W هو عدد البتات في كلمة (والتي يمكنك حساب كما W سيزوف (إنت) تشاربيت) على سبيل المثال من أجل التحول الصحيح المنطقي من قبل 3 الجزء الأكثر تعقيدا هو توليد القناع، ولكن إذا كنت تفكر في التحولات اليسرى تطبيقها حتى قيمة مناسبة، ربما تليها عملية أخرى بتدوية، يجب أن نرى قريبا حل بسيط إلى حد ما. وهو النمط الناتج التمثيل الصحيح ل -164 رقم. تمثل النتيجة عددا موجبا كبيرا، وليس -4 شيفت رايت أريثميتيك لا يمكن استخدام منطقية التحول الصحيح لتقسيم عدد صحيح سالب من قبل اثنين. المشكلة هي أن التحول الصحيح المنطقي يتحرك الأصفار في بت ترتيب عالية. هذا أمر مرغوب فيه في بعض الحالات، ولكن ليس لتقسيم الأعداد الصحيحة السالبة حيث بت الشيء العالي هو بت علامة. ويؤدي التحول الصحيح في الحساب إلى تكرار بتة الإشارة حسب الحاجة لملء مواضع البتات: السؤال 13: هل هناك حاجة إلى إجراء تغيير حسابي

No comments:

Post a Comment