我正在寻找使用 c++ 将双精度向量更改为无符号字符。为了确保它有效,我写道:
unsigned char x = 0;
double y = 4.6;
x = (unsigned char) y;
printf("%d", y);
cout << endl << "the char of 4.6 is: " << x;
getchar();
但不是 char 等于 4 或 5,而是得到一个巨大的数字,如 1717986918 或带有 cout 的菱形符号。
我认为这是因为它将 4.6 解释为 '4.6' 但有没有办法保存它,所以它只是变成一个接近相等值的无符号字符?