我正在试用一个将十进制数转换为二进制数的函数,我想看看它是否有效。问题是我在用C语言写一个小微控制器,我没有很多基本的操作,比如printf。我使用的库只能以字符串或双字符串的形式向LCD屏幕发送信息,因此检查此函数是否工作的唯一方法是将二进制数字以字符串或整数的形式发送到LCD屏幕(如果二进制数字为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将使指针不带强制转换