PDA

View Full Version : عمل rotation روی بیت ها ....



paradise_human
چهارشنبه 12 اسفند 1388, 12:00 عصر
سلام .
چطور میشه عمل rotation رو روی بیت ها انجام داد ؟
مثلا یک عددی 00000111 باشد و ما وقتی بک شیف به راست دادیم عدد به این شکل تغییر کند :
10000011

tdkhakpur
چهارشنبه 12 اسفند 1388, 13:14 عصر
BYTE chr
asm ror chr, 1

Nima_NF
چهارشنبه 12 اسفند 1388, 14:34 عصر
در C/C++‎‎ باید از کد زیر استفاده کنید تا rotation انجام شود:



unsigned char Bits = 72;
int shift = 3; // number of rotation/shift

unsigned char result = (Bits << shift) | ( Bits>> (8 - shift) );


در غیر این صورت از اسمبلی می توانید استفاده کنید.


ضمنا به یاد داشته باشید که در C++‎‎ کلاس استاندارد bitset وجود دارد که کار با bit ها را ساده می کند و می توانید راحت به رشته نیز آن ها را تبدیل کنید و یا اعمال دیگر را انجام دهید.

paradise_human
پنج شنبه 13 اسفند 1388, 20:42 عصر
ویرایش شد :D