int 65535转换为char的结果是 -1, 原因是char只有 1 byte 大小,装不下65535,丢弃了一部分数字,余下的 1 byte 解释为补码。
printf("%f\n",(float) a); 要用强制转换。a 是 int, 要用%d 格式输出。
---
#include <stdio.h>
void main()
{
int a=65535;
float f;
char c;
unsigned char u;
c = (char) a; // 这是有符号char 型,结果为 -1
u = (unsigned char) a; // 如果用无符号char 型,结果为 255
printf("c=%d \n",c);
printf("u=%d \n",u);
a=99;
printf("a=%f ",(float)a); // 强制转换为 float 型
}
温馨提示:答案为网友推荐,仅供参考