PDA

View Full Version : تبدیل کردن یه متغیر دوبایتی به (بایت کم ارزش تر اول)



white tower
دوشنبه 12 بهمن 1388, 21:36 عصر
سلام.
من تو یه برنامه باید داده هام رو به بایت کم ارزش و با ارزش تبدیل کنم.یه چیزایی در موردشون شنیدم اما اصلا نمی دونم چیکار باید بکنم.باید یه متغیر دو بایتی رو به least significant byte first تبدیل کنم و وارد فایل کنم.اما این تبدیل کردن رو بلد نیستم.
ممنون می شم اگر دوستان راهنمایی کنن.

qwerty11
سه شنبه 13 بهمن 1388, 08:39 صبح
سلام،
بایت کم ارزشش برابر and کردن متغیر با عدد 255 هستش و بایت با ارزشش هم از and کردن متغیر با عدد 255 * 8 به دست میاد.

tdkhakpur
سه شنبه 13 بهمن 1388, 11:11 صبح
int num; // دو بایتی
BYTE lByte, hByte;
lByte = (BYTE)num; // کم ارزش
hByte = (BYTE)(num>>8); // با ارزش

white tower
پنج شنبه 15 بهمن 1388, 20:50 عصر
ببخشید اگر بخوام جای این دو بایت رو عوض کنم چیکار باید بکنم.یعنی من یه متغیر از
نوع short int
دارم و مقدار ۱ توشه.اگر بخوام جای دو بایت این متغیر رو عوض کنم باید چیکار کنم.

qwerty11
پنج شنبه 15 بهمن 1388, 21:19 عصر
با اون روشی که گفتم بایت اول و بایت دوم رو به دست بیار. حاصل جدید 256 ضربدر بایت کم ارزش به علاوه ی بایت با ارزش میشه.

tdkhakpur
جمعه 16 بهمن 1388, 14:17 عصر
اگر بخوام جای دو بایت این متغیر رو عوض کنم باید چیکار کنم
میتوانید بصورت زیر کد کنید


short int num=0xFF0F;

asm ROR num, 8
یا
asm ROL num, 8

white tower
یک شنبه 18 بهمن 1388, 16:09 عصر
میتوانید بصورت زیر کد کنید


short int num=0xFF0F;

asm ROR num, 8
یا
asm ROL num, 8

با اینکه نمی فهمم اینا چی هستنن ولی کارم داره راه می افته:اشتباه:. ممنون

tdkhakpur
دوشنبه 19 بهمن 1388, 18:43 عصر
با اینکه نمی فهمم اینا چی هستنن ولی کارم داره راه می افته
ROR و ROL بعث چرخش محتوای متغییر میشود مثل این میماند که بیتها از سمت راست و یا سمت چپ جایشان را با بیت سمت چپ و یا راست عوض میکنند(خلاص چرش یا درو زدن بیتهاست)