Trích:
Nguyên văn bởi pucapuca123
tiện thể bác cho em hỏi luôn cách ghép 8 bít lại với nhau lại bằng cách nào là nhanh nhất.
ví dụ mình có các biến sau.
a0=1;
a1=1;
a2=1;
a3=1;
a4=0;
a5=0;
a6=0;
a7=0;
làm sao để ghép được thành 1 byte : b= a0a1a2a3a4a5a6a7=0b00001111;
và có cách nào sử dụng các biến a0,a1...a7 như các bít trong biến b ( cái này cho tiết kiệm ram) chứ mình toàn khai báo unsigned char a0,a1...a7. tốn ram chết đi được,
cám ơn các bác!
|
Đơn giản.
Code:
typedef union {
struct {
unsigned a0:1;
unsigned a1:1;
unsigned a2:1;
unsigned a3:1;
unsigned a4:1;
unsigned a5:1;
unsigned a6:1;
unsigned a7:1;
}
struct {
unsigned ax:8;
}
}myport;
myport A;
A.ax = 0b00001111;