10 進数を 2 進数に変換する関数を試していますが、機能しているかどうかを確認したいと考えています。問題は、Teensy マイクロ コントローラー用に C で記述していて、printf のような基本的な操作があまりないことです。LCD 画面に文字列または double としてのみ情報を送信できるライブラリを使用しているため、この関数が機能しているかどうかを確認する唯一の方法は、2 進数を文字列または整数 (バイナリの場合) として LCD 画面に送信することです。 number が 1010 だった場合、整数は 10 ではなく 1010 になります)。
私が使用できるライブラリは次のとおりです。
stdint
stdio
avr/io
avr/interrupt
util/delay
stdlib
上記のライブラリのみを使用してこれを行う方法を知っている人はいますか?
編集:コメントリクエストに従ってコードを含めました。10 進数を 2 進数に変換するために使用したコードは次のとおりです。
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 を渡すと、キャストなしで整数からポインターが作成されます