اطلاعیه

Collapse
No announcement yet.

ضرب دو عدد 16 بیتی در pic

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

    ضرب دو عدد 16 بیتی در pic

    سلام با توجه به اینکه میکرو pic بیشترین مقداری که در یک متغییر میگیرد ورد است و برای تعریف متغییر 32 بیتی باید 16 بیت پایین را توی یک متغییر و 16 بیت بالا را دریک متغییر قرار داد من این کار را در برنامه به زبان بیسیک انجام دادم ولی ععدی که روی ال سی دی نشان میدهد اشتباه است .
    شاید عیب کارم اینه که باس انتقال دیتا از میکرو به ال سی دی را 4 بیتی انتخاب کردم.
    برنامه ساده ای داره ولی کارم پیچ خورده و هر کار میکنم جواب نمیده.
    لطفا مرا راهنمایی کنید

    #2
    پاسخ : ضرب دو عدد 16 بیتی در pic

    نوشته اصلی توسط m.mojtaba
    سلام با توجه به اینکه میکرو pic بیشترین مقداری که در یک متغییر میگیرد ورد است و برای تعریف متغییر 32 بیتی باید 16 بیت پایین را توی یک متغییر و 16 بیت بالا را دریک متغییر قرار داد من این کار را در برنامه به زبان بیسیک انجام دادم ولی ععدی که روی ال سی دی نشان میدهد اشتباه است .
    شاید عیب کارم اینه که باس انتقال دیتا از میکرو به ال سی دی را 4 بیتی انتخاب کردم.
    برنامه ساده ای داره ولی کارم پیچ خورده و هر کار میکنم جواب نمیده.
    لطفا مرا راهنمایی کنید
    سلام
    مگه با چه کمپایلری کار میکنید؟
    اینی که گفتید اصلا ربطی به میکرو نداره و فقط به کمپایلر بستگی داره.
    خود کمپایلر توی خانه های حافظه قرار میده.
    باز هم اگه اصرار به استفاده از برنامه خودتون دارید،برنامه ای که نوشتید قرار دهید تا مشکلش رو رفع کنیم.
    تولید کننده انواع تابلو فرمان آسانسور با تکنولوژی روز دنیا

    دیدگاه


      #3
      پاسخ : ضرب دو عدد 16 بیتی در pic

      سلام
      کار کامپایلر رو خودت باید انجام بدی
      ساده ترین راه این است که هر عدد 5 رقمی تو تفکیک کنی : یعنی 5 بایت در نظر بگیری برای عدد اول و 5 بایت برای عدد دوم به این صورت که
      یکان عدد اول در بایت اول -دهگان عدد اول در بایت دوم و....تا اخر . همین کارو برای عدد دوم انجام میدهی.
      حالا با عمل ضرب وجمع(جمع به خاطر کری یا نقلی)بین بایت ها می تونی دو عد رو در هم ضرب کنی (6بایت برای نتیجه حاصل ضرب در نظر بگیر که حاصل هر بایت نباید دورقمی شود)
      بعد 6 بایت نتیجه رو به رشته تبدیل میکنی وروی ال سی دی نمایش میدی .
      همون طوری که کلاس 3ام ابتدایی عمل ضرب رو انجام میدادی

      65000 5 بایت اول
      45000 * 5 بایت دوم
      ------------------
      یا علی 6 بایت نتیجه

      دیدگاه

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