-2
String hexstr = "0x12AB450912AB450912AB450912AB450912AB4509";

長さが 40 バイトの文字列があります。

上記の文字列を 8 進数 (20 バイト) に変換する必要があります。

char *endp;
strtoul(hexstr , &endp, 8);

上記の関数を使用するには、long、つまり 8 バイトに対して機能します。しかし、私の文字列は 40 バイトです。

8進数に変換して文字列に戻す方法を教えてもらえますか?

4

1 に答える 1

1

この関数は unsigned long int を返すため、バイト文字列8を変換しようとしておかしくならないと仮定すると、返される最大値はバイトです。バイト40を保持する標準の整数型はありません。40これを行うには、数字を 2 進数に変換し、3 ビットごとに読み取って、この数値の 8 進数バージョンを取得します。

于 2013-03-17T18:05:30.917 に答える