1

タイトルに書いてあるように、8 バイト (64 ビットの int を表す) を含む (char) 配列を文字列に変換する必要があります。NEC78K0R (16 ビット MCU) で c コードを使用しています。IAR Embedded ワークベンチ IDE を使用しています。

私の考えは、それらを 64 ビット int 型 (fx long long または int64_t (stdint.h から) など) で OR し、sprintf などを使用して文字列に変換することでした。

ただし、標準の 64 ビット整数型を使用すると、コンパイラは「型 'long long' が存在しません」などのエラーを吐き出し始めます。

どんな助けでも大歓迎です。

4

3 に答える 3

0

long適切な 32 ビット整数型であり、16 進形式で問題ない場合は、次のようにします。

char * p = <address of some memory containing a true 64bit number>
char s[19];

リトル エンディアン プラットフォームの場合:

sprintf(s, "0x%08x%08x, *((long*)(p+4)), *((long*)(p)));

ビッグ エンディアン プラットフォームの場合:

sprintf(s, "0x%08x%08x, *((long*)(p)), *((long*)(p+4)));
于 2013-05-21T14:21:24.447 に答える