さて、私はこの整数を16進数に変換しようとしてきましたが、成功しましたが、何かを設定するためにこの16進数を使用する必要があります。このために、char配列ではなくcharを使用する必要があります。手動で設定しない限り、他に何も機能していません。おそらく問題は、16進数への変換にsprintfを使用するという問題にありますが、いずれにせよ、このタスクを完了する方法があると確信しています。ここで変更する必要があるのは、出力を char z にすることですが、これを機能させる方法が見つかりませんでした。どんな助けでも大歓迎です。ありがとう
編集:このコードは不完全であり、無関係なコードを入力する目的がないため、直接意味をなさない可能性があります。int x が 100 を超えることはありません。ポイントは、これを 16 進数に変換して、私が持っている設定のメモリに書き込むことです。そのため、整数を16進数から文字に変換する方法を見つけようとしています。私が気づいたように、sprintfはそれをcharに格納された文字列に変換しますが、誰かが指摘したように非文字列です。しかし、後で int を 16 進数に変換し、それを char 変数 forbuse に割り当てる必要があります。そして、それが私が立ち往生しているところです。文字列やその他のものに入ることなく、フォーマットと方法ですべてを完全に処理する最良の方法はわかりません。
VOID WriteSetting(int x)
{
char output[8];
sprintf(output, "0x%X", x);
char z = 0x46
unsigned char y = z
}
作業コード:
VOID WriteSetting(int x)
{
unsigned char y = (unsigned char)x;
Settingdb.Subset.Set = y;
}