اطلاعیه

Collapse
No announcement yet.

دقت محاسباتی PIC18F8720

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    دقت محاسباتی PIC18F8720

    سلام دوستان دقت محاسباتی میکروکنترلر PIC18F8720در عملیات ریاضی پیچیده با متغییر های float به چه صورت می باشد؟
    من محاسباتم در ارقام اعشاری 8 به بعد خطا دارد و در کل محاسباتم تاثیر میگذارد

    #2
    پاسخ : دقت محاسباتی PIC18F8720

    ببینید ، کلا float چیز دقیقی نیست ، نه تو پیک بلکه کلا در ذات خودش چیز دقیقی نیست . یه مقاله نصفه نیمه خوندم به تحت عنوان اینکه : how does computer works with float variable ، توی اون همچین چیزی گفته بود.که این متغیر دقیق نیست و ...
    (اگه جستجو کردید و متوجه شدید چطوریه ، به من هم بگید)
    ----
    ولی مطلب اصلی که می خوام بگم خدمتتون نوع نمایش این متغیر هست.
    گاها برای من پیش اومده که اون دقتی که می خواستم رو داشته متغیر float ولی نوع نمایش من باعث میشده که اشتباه بشه. به عنوان مثلا دستورات زیر میتونه نتایجی کاملا متفاوت بده:

    کد PHP:
    printf("%f",a);
    printf("%3.5f",a);
    printf("%0.8f",a);
    printf("%0.3f",a);
    printf("%3.f",a);
    printf("%3.0f",a);
    printf("%3f",a); 
    دوستان عزیزم تصمیم گرفتم تا یه مدت کمتر به تالار سر بزنم . اگر دیر جواب دادم ببخشید.

    دیدگاه


      #3
      پاسخ : دقت محاسباتی PIC18F8720


      سلام

      دقت float حدود 22 تا 23 بیت باینری است
      که 4 میلیون تا 8 میلیون شمارش، خواهد بود
      که همان 7 تا 8 رقم اعشار را نتیجه می دهد.

      http://en.wikipedia.org/wiki/Floating_point

      http://en.wikipedia.org/wiki/Double-...g-point_format

      درود
      گشتی در لاله زار
      http://www.eca.ir/forum2/index.php?topic=76138.0

      http://www.eca.ir/forum2/index.php?topic=76141

      دیدگاه


        #4
        پاسخ : دقت محاسباتی PIC18F8720

        سلام دوست عزیز
        اساسا سوال شما اشتباه هست!
        چون 18f8720 سخت افزار محاسبه اعداد float رو نداره(بعید میدونم هیچ میکروی هشت بیتی داشته باشه ) کل الگوریتم پردازشی به عهده کامپایلر میافته . پس دقت این اعداد به نوع کامپایلر بر میگرده نه خود میکرو!!! :mrgreen:

        [glow=black,2,300]بردی جالب با سیستم عاملی جالب !!![/glow]

        دیدگاه


          #5
          پاسخ : دقت محاسباتی PIC18F8720

          نوشته اصلی توسط abbasmh
          سلام دوست عزیز
          اساسا سوال شما اشتباه هست!
          چون 18f8720 سخت افزار محاسبه اعداد float رو نداره(بعید میدونم هیچ میکروی هشت بیتی داشته باشه ) کل الگوریتم پردازشی به عهده کامپایلر میافته . پس دقت این اعداد به نوع کامپایلر بر میگرده نه خود میکرو!!! :mrgreen:
          یعنی دقت عدد تو کامپایلر های مختلف فرق می کنه؟ oo:
          مگه استانداردی برای ذخیره و محاسبه عدد نیست؟
          دوستان عزیزم تصمیم گرفتم تا یه مدت کمتر به تالار سر بزنم . اگر دیر جواب دادم ببخشید.

          دیدگاه


            #6
            پاسخ : دقت محاسباتی PIC18F8720

            قانونا که باید یه استاندارد خاصی برای رسیدن به دقت مورد نظر عدد باشه و خیلی بعیده که یه شرکت یه کامپایلری تولید کنه ( با این همه دنگ و فنگ) که دقت یه متغییر پایه توی اون کم باشه!!!
            ولی در کل همونجوری که گفتم چون میکرو سخت افزار محاسباتی اعداد float رو نداره کامپایلر میاد بوسیله ضرب اعداد integer و and و or و ... این اعداد رو محاسبه میکنه.
            در مورد مشکل دوستمون دو ایراد ممکنه وجود داشته باشه:
            یکیشو که شما گفتید که نحوه نمایشه اعداد هست
            دیگری اینکه ممکنه شما توی برنامه بیاید و متغییر هایی با دقت های مختلف رو با هم ترکیب یا جایگذاری کنید

            باید ببینیم دوستمون چیکار میخاد بکنه؟ :question:

            [glow=black,2,300]بردی جالب با سیستم عاملی جالب !!![/glow]

            دیدگاه

            لطفا صبر کنید...
            X