类型转换-C语言

1.类型转换
1.1自动转换

高        double    ←←    float
↑          ↑             
↑         long     
↑          ↑
↑        unsigned
↑          ↑
低         int      ←←    char,short

规则:在进行自动类型转换的时候,如果原来的数是无符号数,那么在扩展的时候,高位填充的是0;如果是有符号数,那么高位填充的时符号位!这一点有点类似于“>>”操作符,当无符号数右移的时候,高位填充的是0;有符号数右移的时候,高位填充的是符号位。

#include <stdio.h>
int main()
{
     char v16s;
     unsigned char v16u;
     int v32s;
     unsigned int v32u;
     v16s=0xfb;
     v16u=(unsigned char)v16s;
     v32s=(int)v16s;
     v32u=(unsigned int)v16s;
     printf("v16u:%x,v32s:%x,v32u:%x\n",v16u,v32s,v32u);
     v16s=0x0b;
     v32s=(int)v16s;
     v32u=(unsigned int)v16s;
     printf("v32s:%x,v32u:%x\n",v32s,v32u);
     v32s=0xfffffffb;
     v16s=(char)v32s;
     v16u=(unsigned char)v32s;
     printf("v16s:%x,v16u:%x\n",v16s,v16u);
     v16s=0xfb;
     v16u=0xfb;
     v32s=(int)v16s;
     v32u=(unsigned char)v16u;
     printf("v32s:%x,v32u:%x\n",v32s,v32u);

     return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值