C语言 有一种方法可以将整型转换为二进制并将其放入数组中



我正在为我的arduino制作一个程序,需要访问eeprom,但我需要找到一种方法来发送地址,我有一个int,我想转换成二进制并发送到eeprom,但我需要将其分割成一个数组,这样我就可以将数据发送到eeprom。

我想不出任何方法来做到这一点,我已经向一些人寻求帮助,但他们不知道怎么做。

void int_to_bin_array(unsigned int in, int count, int* out)
{
unsigned int mask = 1U << (count-1);
int i;
for (i = 0; i < count; i++) {
out[i] = (in & mask) ? 1 : 0;
in <<= 1;
}
}
int main(void)
{
int binary_array[8];
const int bin_size = 8;
int decimal = 15;
int_to_bin_array(decimal, bin_size, binary_array);
return 0;
}

内存地址是十六进制值,不是二进制。你不需要在这里这样做。

您需要正确理解与MCU(在本例中为Arduino)的内存接口以及c中的嵌入式系统概念和指针。

您可以直接指定十六进制值的地址值(uint_t addr = (uint_t *) 0x1234ABCD),编译器将在编译期间自动将其转换为相应的二进制。

相关内容

  • 没有找到相关文章

最新更新