c语言类型转换

本文介绍了C语言中不同数据类型间的转换规则,包括浮点型到整型的舍弃小数取整,整型到浮点型可能的精度丢失,整型到字符型的溢出处理,以及不同类型在运算中的隐式转换和强制转换。示例代码展示了转换过程及其可能的影响,如无符号数与有符号数的转换和计算。
摘要由CSDN通过智能技术生成

类型的转换过程:

       float --->  int    舍弃小数   取整操作

       int   --->  float  整型(精确类型)  小数(非精确类型) 精度会丢失

      

       int   --->  char   溢出部分舍弃   宽存储空间 转换为  小存储空间

       int   --->  short  

                                          小存储空间 转换为     宽存储空间   不影响

整型与浮点型 参与运算时   隐式类型转换 会统一转换为浮点型计算

有符号数  无符号数  强制类型转换时  存储内容 完全没有改变  但影响计算

      

#include <stdio.h>

//类型的转换

int main()
{
    int a;
    float f = 2.5;
    a = f; //隐式类型转换
    a = (int)f; //强制类型转换
    printf("a=%d\n",a);    
    printf("f=%f\n",f);    
    
    char c;// 仅C99标准允许
    a = 5;
    c = a;
    printf("c=%d\n",c);
    
    a = 10;
    f = 2.5;
    c = (char)(a + (int)f + (int)1.7);//强制类型转换 

    printf("c=%d\n",c);

    unsigned char uc = 128;
    signed   char sc = uc;

    printf("uc=%d,sc=%d\n", uc,sc);
    printf("uc=%d,sc=%d\n", uc,(unsigned char)sc);
    
    a = -1;

    printf("a=%u\n", a)//%u  输出整型无符号数  以10进制方式显示
    unsigned int b = a;
    printf("b=%u\n", b);//%u  输出整型无符号数  以10进制方式显示

    a = (int)uc + (int)sc; // a = uc + sc;
    //a = uc + (unsigned char)sc;
    //a = (signed char)uc + sc;
    printf("a=%d\n", a);

    return 0;
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值