اطلاعیه

Collapse
No announcement yet.

تبدیل int16 به دو عدد int8

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

    تبدیل int16 به دو عدد int8

    با سلام :nerd:
    دوستان من میخوام یک int16 به دو عدد int8 تبدیل کنم. نمیخواهم به صورت string تبدیل بشه . بلکه فقط میخواهم به صورت دو (MSB , LSB) تبدیل بشه.
    ممنون میشم راهنمایی کنید.
    هر وقت خواستید کاری بکنید، چهل سال عقب و چهل سال جلو را در نظر بگیرید. "بابابزرگ"

    #2
    پاسخ : تبدیل int16 به دو عدد int8

    با شیفت یا اعمال تقسیم و باقسمانده بر 256میتونی مقدار دو قسمت رو بدست بیاری
    یه کاری دیگه هم استفاده از اشاره گر هست. اشاره گر به int16 بایت کم ارزش و اشاره گر به int16+1 اشاره به بایت پر ارزش میکنه (منظورم از اشاره گر به int16 در اینجا همون آدرس متغیر هست)

    دیدگاه


      #3
      پاسخ : تبدیل int16 به دو عدد int8

      کد:
      int16 data=3875;
      int8 lsb,msb;
      lsb = data & 0xFF;
      msb = (data>>8) & 0xFF;

      دیدگاه


        #4
        پاسخ : تبدیل int16 به دو عدد int8

        نوشته اصلی توسط abolfazlk873
        با سلام :nerd:
        دوستان من میخوام یک int16 به دو عدد int8 تبدیل کنم. نمیخواهم به صورت string تبدیل بشه . بلکه فقط میخواهم به صورت دو (MSB , LSB) تبدیل بشه.
        ممنون میشم راهنمایی کنید.
        عدد(16بیتی) رو بر256تقسیم کن جواب میشه هشت بیت پرارزش
        باقی مانده عددموردنظر(16بیتی) بر 256 میشه هشت بیت کم ارزش
        مثلا فرض کنیم عددی a شانزده بیته و برابر با543(0000001000011111)رو میخواییم به دوبایت تقسیم کنیم
        a=543 543=0000001000000111


        b=a div 256
        b=بایت پررزش

        c=a mod 256
        c=بایت کم ارزش
        543/256=2 (00000010)بایت پرارزش

        543 // 256=31 (00011111)بایت کم ارزش
        اگريك فلج مادر زاد در مسابقه دو ماراتون نفراول نشود مقصر فقط وفقط خودش است...

        دیدگاه

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