-1

私は問題を抱えています。皆さんが私を助けてくれることを願っています。プロジェクトに 32 ビット uC を使用しています。Uart を介してキーボードから uC に (ハイパー ターミナル経由で) 文字を受信します。私は C のみを使用しているため、この文字を char 型のバッファに格納しています。たとえば、0xff502035 のような 16 進数のアドレスを入力として送信する必要があります。ハイパー ターミナルを使用して Uart 経由で送信し、バッファ内に 1 文字ずつ格納します。次に、これを(charから)整数に変換して、その場所に格納されている値を読み取る関数にさらに渡します。

だから私が必要とするのは次のようなものです: char[] を int に変換します。したがって、バッファに "0xff502035" が含まれている場合、 0xff502035 整数型として必要です。私を助けてくれてありがとう。

よろしく、 ローレンティウ

4

2 に答える 2

0

「文字列を数値に変換する方法」の完全なサンプルを提供するつもりはありませんが、strtol関数を見てみましょう。

于 2013-02-28T12:41:53.607 に答える
0

これは、このフォーラム、上記のリンクで回答されています。

ただし、ポストを完了すると、アドレスは 16 進形式で記録され、文字列として転送されますが、実際には最終的にバイナリ形式で解釈されるアドレスです。関数 strtoul を 32 ビット システムと 64 ビット システムの両方で安全に使用して、16 進形式のアドレスを元の形式に変換することができます。

char *buf; // 文字列形式のアドレスが含まれています

char *endptr;

int *ptr;

ptr = (int*)strtoul(buf, &endptr, 16);

于 2013-02-28T12:54:43.333 に答える