اطلاعیه

Collapse
No announcement yet.

راهنمایی کلی برای حل مشکل در برنامه نویسی

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

    راهنمایی کلی برای حل مشکل در برنامه نویسی

    سلام.
    فرض بفرمایید یک عدد رسیور برای دریافت کد ریموت ask ساخته ام
    بعد از دریافت سیگنالها و تحلیل آنها را به 0 و 1 تبدیل میکنم.
    تا جایی که اطلاع دارم عرف اینه که هر کدام از این 0 و 1 ها را مجبوریم بصورت بایتی ذخیره کنیم .یعنی عدد 1 را در یک بایت ذخیره کنیم.چرا؟ چون امکان ذخیره بصورت بیتی در حافظه میکرو و ایپرام خارجی وجود ندارد و همه از ذخیره بایتی پشتیبانی میکنند
    یعنی برای ذخیره 24 عدد صفر و یک باید 24 بایت را اشغال کنیم.
    حالا مشکل اینه که :
    یا میخوام همین کار را بصورت ذخیره بیتی انجام دهم که نمیدونم شدنی هست یا نه.
    یا اینکه هر هشت عدد 0 و 1 را کنار هم قرار دهم تا بشه یک بایت و سپس همون بایت رو ذخیره کنم.

    #2
    پاسخ : راهنمایی کلی برای حل مشکل در برنامه نویسی

    نوشته اصلی توسط leader. نمایش پست ها
    سلام.
    فرض بفرمایید یک عدد رسیور برای دریافت کد ریموت ask ساخته ام
    بعد از دریافت سیگنالها و تحلیل آنها را به 0 و 1 تبدیل میکنم.
    تا جایی که اطلاع دارم عرف اینه که هر کدام از این 0 و 1 ها را مجبوریم بصورت بایتی ذخیره کنیم .یعنی عدد 1 را در یک بایت ذخیره کنیم.چرا؟ چون امکان ذخیره بصورت بیتی در حافظه میکرو و ایپرام خارجی وجود ندارد و همه از ذخیره بایتی پشتیبانی میکنند
    یعنی برای ذخیره 24 عدد صفر و یک باید 24 بایت را اشغال کنیم.
    حالا مشکل اینه که :
    یا میخوام همین کار را بصورت ذخیره بیتی انجام دهم که نمیدونم شدنی هست یا نه.
    یا اینکه هر هشت عدد 0 و 1 را کنار هم قرار دهم تا بشه یک بایت و سپس همون بایت رو ذخیره کنم.
    سلام
    شما میتونی بسته به شماره بیتی که دریافت کردی یه بایت یا دو بایت و ... رو مقدار دهی کنی
    مثلا:
    برای بیت اول با فرض اینکه اسم متغیر a هست:
    اگر بیت برابر با 0 بود:
    a=(0<<0)
    اگر بیت برابر با 1 بود:
    a=(0<<0)
    و به ترتیب میرید جلو.مثلا واسه بیت شماره 1 میشه:
    اگر بیت برابر با 0 بود:
    a=(0<<1)
    اگر بیت برابر با 1 بود:
    a=(0<<1)

    دیدگاه


      #3
      پاسخ : راهنمایی کلی برای حل مشکل در برنامه نویسی

      نوشته اصلی توسط M3R-E نمایش پست ها
      سلام
      شما میتونی بسته به شماره بیتی که دریافت کردی یه بایت یا دو بایت و ... رو مقدار دهی کنی
      مثلا:
      برای بیت اول با فرض اینکه اسم متغیر a هست:
      اگر بیت برابر با 0 بود:
      a=(0<<0)
      اگر بیت برابر با 1 بود:
      a=(0<<0)
      و به ترتیب میرید جلو.مثلا واسه بیت شماره 1 میشه:
      اگر بیت برابر با 0 بود:
      a=(0<<1)
      اگر بیت برابر با 1 بود:
      a=(0<<1)
      سپاس.
      منظور شما شیفت دادن که معادل ضرب در دو به توان تعداد شیفت به چپ و در آخر جمع بستن همه است؟
      جدیدترین ویرایش توسط leader.; ۱۶:۰۹ ۱۳۹۶/۰۲/۰۷.

      دیدگاه


        #4
        پاسخ : راهنمایی کلی برای حل مشکل در برنامه نویسی

        [QUOTE=leader.;651834]سپاس.
        منظور شما شیفت دادن که معادل ضرب در دو به توان تعداد شیفت به چپ و در آخر جمع بستن همه است؟

        بله دقیقا

        دیدگاه

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