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 文字に変換したいと考えています。私が間違っていることは何ですか?.
ありがとう!!、そして私の英語でごめんなさい。