View Single Post
Old 13-04-2009, 06:29 PM   #6
cong1810
Đệ tử 4 túi
 
Tham gia ngày: Sep 2007
Bài gửi: 62
:
Send a message via Yahoo to cong1810
Trích:
Nguyên văn bởi manhha2799 View Post
int16 laybit(int16 binary,int8 vitri)
{
if (dbit==0) kq3&=0b00000001;
else if (dbit==1) kq3&=0b00000011;
else if (dbit==2) kq3&=0b00000111;
else if (dbit==3) kq3&=0b00001111;
else if (dbit==4) kq3&=0b00011111;
else if (dbit==5) kq3&=0b00111111;
else if (dbit==6) kq3&=0b01111111;
else if (dbit==7) kq3&=0b11111111;
return kq3;
}
huynh xem lại dùm đệ đoạn này hen!!
đệ nghĩ phải là 0b00000001 --> 0b00000010 --> 0b00000100..mới đúng chứ nhỉ?
cám ơn huynh!!

bạn cũng có thể dùng lệnh rotate_left hay rotate_right trong CCS C.cũng với cách tương tự như huynh trên làm.bạn tạo một vòng lặp trong đó cho "and" & với 0x01 rồi lấy mũ tương ứng và cộng dồn vào.nếu giá trị của bạn nằm trong vòng 16bit thì tạo 1 biến 16 bit cho giá trị muốn đổi và cứ cho vòng lặp 16 lần.
hy vọng mình nghĩ đúng và giúp ích cho bạn!!
cong1810 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn