1

C++ で char と int の間で変換したいのですが、char から int への変換に問題があることがわかりました。

103 と 155 の 2 つの数値でテストを行いました。 103 (正しい) ですが、なぜ "ø" が -101 になるのかわかりません。

char 変数を使用して数値を格納し、「prinf("%d", char[x]);」を使用しています。番号を表示します。

私はこのテストスクリプトを持っています:

#include <cstdlib>
#include <cstdio>

using namespace std;

int numero = 26523;    

char *inttochar(int number) {
    char *salida;
    for (int j=0;j<=5;j++) {
        salida[5-j] = number % 256;
        printf("%d = %d = %c = %c = %d\n", 5-j, number % 256, number % 256, salida[5-j], salida[5-j]);
        number = number / 256;
    }
    return salida;
}

int main(int argc, char** argv) {
    char *texto = inttochar(numero);

    for (int j=0;j<=5;j++) {
        printf("%d: ", j+1);
        printf("%c = %d\n", texto[j], texto[j]);
    }

    return 0;
}

結果は次のとおりです。

5 = 155 = ø = ø = -101
4 = 103 = g = g = 103
3 = 0 =   =   = 0
2 = 0 =   =   = 0
1 = 0 =   =   = 0
0 = 0 =   =   = 0
1:   = 0
2:   = 0
3:   = 0
4:   = 0
5: g = 103
6: ø = -101

このスクリプトを使用して、数値を基数 256 文字に変換したいと考えています。私が間違っていることは何ですか?.

ありがとう!!、そして私の英語でごめんなさい。

4

2 に答える 2