我是新手! 我需要一点一点地传递一个十六进制值数组。我不知道该怎么做。
让我们说我在下面定义了数组,
const uint_8t a[] = { 0xAA, 0xF8, 0x03, ... };
int size=sizeof(a) / 8;
//edited
SBIT(port, SFR_P0, 1);
void Data(int *a, int size) {
int i;
for (i = 0; i < size; i++) {
port = a[i];
}
}
如何将该数组逐位传递给指向MSB的函数。
答案 0 :(得分:1)
您无法传递位地址。但是你可以枚举这些位并用2个嵌套循环传递它们的值:
const uint_8t a[] = { 0xAA, 0xF8, 0x03, ... };
size_t size = sizeof(a);
for (size_t i = 0; i < size; i++) {
for (int shift = 8; shift-- > 0; ) {
transmit_bit((a[i] >> shift) & 1);
}
}
答案 1 :(得分:0)
单个RemoteViews
uint_8t
的各个位可以按如下方式编制索引,其中最重要的位首先被处理。
arg
您可以迭代for (int i = 7; i >= 0; i--)
{
uint_8t i_th_bit = ( arg >> i ) & 1;
}
并按上述方式逐位处理字节。