我正在试用一个将十进制数字转换为二进制的函数,我想看看它是否有效。问题是我用 C 语言为一个 Teensy 微控制器编写它,而且我没有很多像 printf 这样的基本操作。我使用的库只能将信息作为字符串或双精度发送到 LCD 屏幕,所以我检查此函数是否正常工作的唯一方法是将二进制数作为字符串或整数发送到 LCD 屏幕(如果二进制number 是 1010,整数将是 1010,而不是 10)。
我能够使用的库是:
stdint
stdio
avr/io
avr/interrupt
util/delay
stdlib
有谁知道如何仅使用上述库来做到这一点?
编辑:根据评论请求包含代码。我用来将十进制转换为二进制的代码是:
uint8_t dec_to_bin(void){
int n = 100;
long long binaryNumber = 0;
int remainder, i = 1;
while (n!=0){
remainder = n%2;
n /= 2;
binaryNumber += remainder*i;
i *= 10;
}
return binaryNumber;
}
然后在主要功能中我有:
uint8_t a = dec_to_bin();
sprintf(a, "%u");
这将返回错误:错误:传递 'sprintf' 的参数 1 使指针从整数而不进行强制转换