(笔试题)输出这段代码的结果(关于进制位的代码)
发布时间:2023-02-14 05:02:41 291 相关标签:
#include
int main()
{
char a=-1;
signed char b=-1;
unsigned char c=-1;
printf("a=%d,b=%d,c=%d",a,b,c);
return 0;
}
解析:
#include
int main()
{
//10000000000000000000000000000001
//11111111111111111111111111111110
//11111111111111111111111111111111
char a=-1;
//char 11111111 %d的打印。高位补位和符号为一致,这里的符号位是1,进行整型提升
//11111111111111111111111111111111补码,所以原码还是-1
signed char b=-1;
//char 11111111
unsigned char c=-1;
//无符号char 11111111,进行整型提升
//00000000000000000000000011111111,成为了正数 原码、反码、补码相同
//打印出来的是255
printf("a=%d,b=%d,c=%d",a,b,c);//%d整型
return 0;
}

文章来源: https://blog.51cto.com/u_15899086/6042460
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报