[QUOTE=tungtot_vl;22143]
Trích:
Nguyên văn bởi nguyennam8888
khi thục hiện lệnh thì nó dịch một bit.
tùy theo chuơng trình của bạn như thế nào mà bạn sử dụng nó cho thích hợp
shift_right(mang,so byte,1 hoặc 0); dich các bit trong mãng sang phải 1 bit sau đó chèn vào giá trị đầu tiên là 1 hoặc 0
shift_left(mang,so byte,1 hoặc 0)
rotate_right(mang,so byte); xoay phải các bit trong mang
rotate_left(mang,so byte);
ví dụ:
mang[2] có các bit là: 0b11110000,0b00001111;
shift_left(mang,2,1); ==>khi đó các bit trong mang là: 0b11100000,0b00011111;
shift_left(mang,2,0); ==>khi đó các bit trong mang là: 0b11100000,0b00011110;
rotate_left(mang,2);==>khi đó các bit trong mang là: 0b11100000,0b00011111;
rotate_right(mang,2);==>khi đó các bit trong mang là: 0b11111000,0b00000111;
các hàm này khi ứng dụng cho dịch trái hay phải thì còn tùy thuộc vào code bạn viết nhé
|
bây giở giả sừ em có một mảng gồm 4 byte :K[4]= {0b11010101,0b01011011,0b01111000,0b11100011};
em muốn dich phai byte thứ 4 trong mảng với bít đầu tiên của byte thứ 3 trong mảng thì phải làm như thế nào