اطلاعیه

Collapse
No announcement yet.

مشکل برای ایجاد متغیر 32 بیتی - مشکل سرریز یک متغیر

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

    #16
    پاسخ : مشکل برای ایجاد متغیر 32 بیتی - مشکل سرریز یک متغیر

    نوشته اصلی توسط amirna3r
    سلام. من یه متغیر 32 بیتی تعریف کردم(unsigned long int a)
    بعد این عدد رو در 100000 ضرب میکنم، مشکلی نیست ولی اگر ضرب در 10000 کنم warning زیر رو بهم میده!
    overflow is possible in 16 bit multiplication, casting to 'long' may be required
    دستور رو هم به شکل روبرو نوشتم:
    کد:
    a+=key*10000;
    یه عدد بین 0 تا 9 رو در 10000 ضرب میکنه! اگه این عدد رو در 10 یا 100 یا 1000 هم ضرب کنم باز هم همین warning رو دارم! ولی وقتی در 100000 ضرب میکنم مشکلی نیست!
    من کد رو به شکل زیر هم نوشتم دیگه Warning ندارم ولی overflow اتفاق میوفته!
    کد:
    a+=key*10000ul;
    ممنون
    سلام
    شما که مشکلتون حل شده بود ... باز همون مشکل برخوردید ؟؟
    [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
    معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
    معرفی نرم افزار Codewizard PWM
    با من بیشتر آشنا شوید

    دیدگاه


      #17
      پاسخ : مشکل برای ایجاد متغیر 32 بیتی - مشکل سرریز یک متغیر

      کد:
      a=(long)a+(long)key*10000;
      البته می تونید به جای long از unsigned استفاده کنین.

      دیدگاه


        #18
        پاسخ : مشکل برای ایجاد متغیر 32 بیتی - مشکل سرریز یک متغیر

        نوشته اصلی توسط vahid_22002
        کد:
        a=(long)a+(long)key*10000;
        البته می تونید به جای long از unsigned استفاده کنین.
        دست شما درد نکنه! حل شد مشکل. ممنون. من همه رو چک کردم ولی مدلی که شما فرمودین رو نه!!
        ممنون.

        سلام
        شما که مشکلتون حل شده بود ... باز همون مشکل برخوردید ؟؟
        نه متاسفانه دقیق چک نکرده بودم. خیلی ممنون.

        دیدگاه


          #19
          پاسخ : مشکل برای ایجاد متغیر 32 بیتی - مشکل سرریز یک متغیر

          نوشته اصلی توسط amirna3r
          دست شما درد نکنه! حل شد مشکل. ممنون. من همه رو چک کردم ولی مدلی که شما فرمودین رو نه!!
          ممنون.
          نه متاسفانه دقیق چک نکرده بودم. خیلی ممنون.
          خوب چرا به روش کارکتری پیش نمیری ؟؟
          همه رو بریز توی آرایه از نوع char بعد بیا همه رو به عدد تبدیل کن ...
          لقمه رو دور دهنتون دور نزنید :nerd:

          موفق باشید
          [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
          معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
          معرفی نرم افزار Codewizard PWM
          با من بیشتر آشنا شوید

          دیدگاه

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