![]() |
|
|
|
|
#1 |
|
Đệ tử 5 túi
|
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; } void main() { for (i=0;i<8;i++) thapphan=thapphan+laybit(binary,i)*2^1; } Giải thích, ban đầu bạn làm một hàm lấy từng byte trong chuỗi binary, từ vị trí 0-->7 bằng hàm laybyte(binary,vitri) Sau khi lấy bit ở vị trí thì nhân với 2^vitri ở đó, rồi cộng dồn với thập phân.
__________________
Bảng ledsigns chất lượng cao... http://www.ledviet.info - manhha2700@yahoo.com Đt:0949299699 |
|
|
|
|
|
#2 | |
|
Đệ tử 4 túi
|
Trích:
đệ 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!! |
|
|
|
|
|
|
#3 |
|
Đệ tử 5 túi
|
Uh, mình wên mất, không nhìn kỹ, tại copy từ chương trình cũ lúc xưa. HIHI
__________________
Bảng ledsigns chất lượng cao... http://www.ledviet.info - manhha2700@yahoo.com Đt:0949299699 |
|
|
|
![]() |
|
|