我想在 C++ 中在 char 和 int 之间进行转换,但我发现 char 到 int 转换的问题。
我用两个数字进行了测试,103 和 155。103 给我 char 中的“g”,155 给我“ø”,两者都是正确的,但问题是当我尝试将字符返回到 int 时:“g”给我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 进制字符。¿ 我做错了什么?
谢谢!!,我很抱歉我的英语。