C - تعويم العشري ثنائي - خيارات


لدي برنامج، والذي يعمل على اثنين من المعالجات، واحدة منها ليس لديها دعم نقطة عائمة. لذلك، أنا بحاجة إلى إجراء الحسابات العائمة نقطة باستخدام نقطة ثابتة في هذا المعالج. لهذا الغرض، وسوف تستخدم مكتبة العائمة محاكاة مضاهاة. أنا بحاجة إلى أولا استخراج علامات، مانتيساس ودعاة أرقام النقطة العائمة على المعالج الذي لا تدعم نقطة العائمة. لذا، سؤالي هو كيف يمكنني الحصول على علامة، عفريت و الأس من رقم نقطة العائمة الدقة واحدة. بعد الشكل من هذا الرقم، وهذا هو ما فعلت حتى الآن، ولكن باستثناء علامة، لا العفو والأس هو الصحيح. أعتقد، أنا في عداد المفقودين شيء. طلب مارس 28 13 في 15:00 I39m بافتراض إيي 754 32 بت ثنائي. هل أنت على علم بالمشاكل التالية (1) يتم حساب الأس من خلال إضافة 127 إلى الأس الفعلي. (2) يتم تطبيع جميع العوامات الصغيرة جدا، ولا يتم تخزين 1 بت الرائدة من العائمة تعويم العادة. نداش باتريشيا شاناهان 28 مارس 13 في 17:05 هناك 39s أي قانون يقول لديك لاستخدام الأشياء فقط لما تم إنشاؤها أصلا ل. وإلا فإن الطائرة الأولىnn39t قد استخدمت بت من دراجة. كوتينيراليكوت وندفيند ماذا عن تلك المناسبات عندما يتم تعريفها، أو عندما you39re سعيد مع السلوك على منصة معينة نداش الدكتور إيفال 28 فبراير الساعة 11:29 أنت أمبير في بت الخاطئة. أعتقد أنك تريد: تذكر، عندما كنت أمبير. كنت التصفير من البتات التي لم تقم بتعيين. لذلك في هذه الحالة، كنت ترغب في الصفر خارج بت علامة عندما تحصل على الأس، وتريد أن الصفر خارج بت علامة والأس عندما تحصل على العفريت. لاحظ أن الأقنعة تأتي مباشرة من صورتك. لذلك، فإن قناع الأس تبدو وكأنها: 0 11111111 00000000000000000000000 والقناع مانتيسا سوف تبدو مثل: 0 00000000 11111111111111111111111 أنسويرد مار 28 13 في 15:07 أنا لا تزال don39t الحصول على النتائج الصحيحة. نداش ميتاليكبريست مار 28 13 في 15:10 ميتاليكبريست جرب الآن، كان لي أقنعة خاطئة في المرة الأولى. نداش زيموستيش 28 مارس 13 في 15:12 ماذا عن ما يسمى خفية قليلا أنا don39t ترى أي شخص تعيينه: م 0x00800000. لاحظ أنه يجب فحص الرقم للقيم الخاصة (دنورمالس، نان، إنفينيتيس) أولا، لأن هذه تتطلب معاملة مختلفة. ناداش رودي فيلثيس 29 مارس 22 في 22: 16 تحويل بين التمثيلين العشري والعشري من إيي 754 أرقام العائمة في C وجافا وبيثون هذا المنصب تنفذ وظيفة السابقة التي تشرح كيفية تحويل أرقام النقطة العائمة 32 بت إلى الأرقام الثنائية في إيي 754. ما لدينا هو بعض ج جافا بايثون الروتينية التي سوف تسمح لنا لتحويل قيمة النقطة العائمة إلى إترسكووس نظير ثنائي المكافئ، وذلك باستخدام معيار إيي 754 التمثيل تتكون من بت علامة، الأس والعشري (جزء كسري). على العكس من ذلك، هناك أيضا وظيفة تحويل ترميز سلسلة من رقم ثنائي إيي 754 وتحويله مرة أخرى إلى قيمة نقطة عائمة. كان لي معنى لتنفيذ شيء من هذا القبيل لبعض الوقت، كما أن هناك واحد أو اثنين من التطبيقات التي في الاعتبار والتي من شأنها أن تكون هذه التحويلات مفيدة: الخوارزميات الجينية التي تعمل على أرقام نقطة عائمة على سبيل المثال. دون مزيد من اللغط، يرجى العثور على مقتطفات الشفرة والمخرجات سبيل المثال أدناه: إعطاء لنا الإخراج التالي: كما أشار إلى لسكووجونزميثكسرسكو في التعليقات أدناه، ماذا لو كنت دونرسكوت يكون العوامات المتاحة، مثل عند استخدام ميتا التاجر 4. هنا هو كيفية محاكاة فإنه باستخدام الزوجي والدخول، والتي نشرت إرسكوف هنا باستخدام تنسيق لطيفة التي هي حتى الآن غير متوفرة في صناديق التعليقات: بالطبع، مع جافا هذا هو كل شيء أبسط بكثير، لأن التحويلات بالفعل فعلت كثيرا بالنسبة لنا: إعطاء ما يلي الإخراج: المكافئ الثنائي من 19.5: 1000001100111000000000000000000 المعادل العشري 1000001100111000000000000000000: 19.5 كود المصدر بيثون تذكر أنه في بيثون العوامات ممثلة إيي 754 تنسيق النقطة العائمة التي هي 64 بت نداش طويلة لا 32 بت. وهذا يعطي الإخراج وحدة التحكم التالية: المكافئ الثنائي من 19.5: 100000000110011100000000000000000000000000000000000000000000000 عشري يعادل 100000000110011100000000000000000000000000000000000000000000000 19.5 لمزيد من التحويلات نظام عدد في C، انظر هذه المشاركة. الوظائف ذات الصلة إنشاء وتجنب ظروف الجمود في C استخدام مجموعة فرعية من مكتبات دفعة في ويندوز طباعة محتويات حاويات ستل بطريقة عامة ماكروكوسم 6 أبريل 2013 في بيثون، سوف تعطل طريقة بيناريتوفلوت إذا أعطيت مصفوفة سلبية (أي إذا كانت السلسلة يبدأ مع 1). أنا أنب رمز لذلك لن تعطل. قد يكون هناك طريقة أفضل للقيام بذلك، ولكنه يعمل وهو سريع نسبيا ديف بيناريتوفلوت (فالو): إذا القيمة 0 821618217: القيمة 821608217 value1: هكس هيكس (إنت (فالو، 2)) ريتورن - struct. unpack (8220d8221، ستروكت . باك (8220q8221، إنت (هكس، 16))) 0 إلس: هكس هيكس (إنت (فالو، 2)) ريتورن Struct. unpack (8220d8221، Struct. pack (8220q8221، إنت (هكس، 16))) 0 هابيوك 7 أبريل 2013 شكرا ماكروكوسم 8211 هذا النوع من المعلومات هو دائما مفيدة للآخرين. وسوف أقوم بتحديث وفقا لذلك عندما أحصل على فرصة. هتافات اندي فين 31 يوليو 2015 حصلت I8217ve بعض الأخطاء. فإنه يتم القيام به عن المدخلات قيمة 822008221، الإخراج أيضا 822008221. ولكن الآن 5.87747e-39. قيمة نتيجة خاطئة. GetFloat32، كومبلير g، أداة إيد كت 4.8.2 في نظام لينكس. المعادل العشري ل 00000000000000000000000000000000: الكمبيوتر 5.87747e-39A يمكن استخدام نوعين فقط من القيم. وهذا هو، نقطة ثابتة ونقطة عائمة. يتم تخزين قيم نقطة ثابتة في ذاكرة الكمبيوتر في شكل ثنائي يمثل قيمة أسي الخاصة بهم. حرف 8216A8217 يمكن تخزينها كما 1000001. لأن، 65 هو قيمة أسي 8216a8217. في حالة قيم النقطة العائمة، تتبع هذه المعايير إيي 754 لتخزينها في الذاكرة. كلما أعلنت أي لغة برمجة تطفو a ثم سيتم تخزين المتغير كقيمة في الذاكرة باتباع معيار إيي 754. وتحدد هذه المواصفة القياسية الدقة الدقيقة والدقة المزدوجة. وفي حالة C و C و جافا، تحدد أنواع المعطيات المزدوجة والمزدوجة الدقة المفردة والمزدوجة التي تتطلب 32 بتة (4 بايتات) و 64 بتة (8 بايتات) على التوالي لتخزين البيانات. دعونا نلقي نظرة على هذه الأشكال الدقيقة. يتطلب 32 بت لتخزين. وفيما يلي شكل الدقة واحدة. من أجل تخزين قيمة تعويم في ذاكرة الكمبيوتر، يتم اتباع خوارزمية محددة. خذ مثالا على قيمة تعويم - 3948.125 سرية 3948 إلى ثنائي. أي 111101101100 تحويل .125 إلى ثنائي،

Comments

Popular Posts