我正在試用一個将十進制數轉換為二進制數的函數,我想看看它是否有效。問題是我在用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将使指針不帶強制轉換