"03FE"
16 進数値を保持するような文字列があります。この文字列を 2 つの部分に分割し、それぞれの部分を同等の 16 進数に変換する必要があります。
つまり、0x03
ある変数と0xFE
別の変数が必要です。
たとえば、文字列を分割する必要がなければ、次のようにします。
char *p;
uint32_t uv=0;
uv=strtoul(&string_to_convert, &p, 16);
文字列を分割する必要がある場合、どうすればよいですか?
strtoul
代わりに次の出力を分割します。
uint8_t uv_hi = uv >> 8;
uint8_t uv_lo = uv & 0xFF;
おもう
n+1
に分割する、length の 1 つの追加バッファーを作成できます。n
snprintf()
します。n
strtoul()
一時バッファの内容を 16 進値に変換するために使用します。このようにして、任意の長さのソース文字列をトークン化してトークンに変換し、それらを 16 進数値に変換する一般的な方法を使用できます。