zoukankan      html  css  js  c++  java
  • c语言学习的第四天2

     

     

    上图显示了floatdouble的精度,精度:就是指数值的精确程度,浮点类型可表示的数值范围很大,但只有几位是精确的,可以通过小

    数所占的位数来获取,float小数部分最多能有7位有效数字,但绝对能保证的是6位,double小数部分为16位有效数字,但绝对能保证的

    15

    #include<stdio.h>

    int main()

    {

        double x=3.0123456789111118;

        printf("%f ",x);

        return 0;

    }

    默认%f只输出小数点后六位,要指定输出多少位需要使用下面的格式

    printf("%.16f ",x);

     

    #include<stdio.h>

    int main()

    {

        double x=3.0123456789111118;

        printf("%A ",x);

        return 0;

    }

    %A会将x的值转换为十六进制浮点数,%e是指数形式,%f是十进制形式,编译器默认将浮点数看为double类型

     

    #include<stdio.h>

    int main()

    {

        char ch;

        ch=97;

        printf("ch:%c ",ch);

        return 0;

    }

     

    char ch,系统会为该变量分配一个字节的空间,并在该内存空间上贴上一个标签ch%c代表字符类型

    #include<stdio.h>

    int main()

    {

        char ch;

        ch='a';

        printf("ch:%c ",ch);

        printf("ch:%d ",(int)ch);

        return 0;

    }

    printf("ch:%d ",(int)ch);的作用是输出变量ch对应的ASSIIC码值,(int)中的()是强制类型转换运算符,()中的int代表要转换成的类型

    字符型变量只能保存一个字符,‘’包含的是一个字符,“”包含的是一串字符,因此上面的ch=’a’;不能写成ch=”a”;

    #include<stdio.h>

    int main()

    {

        int i;

        for (i=32;i<127;i++)

        {

            printf("%c ",(char)i);

        }

        return 0;

    }

    上面的程序是将32~126 ASCII码对应的字符依次输出

    #include<stdio.h>

    int main()

    {

        char ch1=0;

        char ch2='0';

        printf("%d %d ",(int)ch1,(int)ch2);

        return 0;

    }

    运行上面的程序可以得到数字0对应的ASIIC码为0,而字符0对应的ASIIC码为48

    #include<stdio.h>

    int main()

    {

        float f=3.1415f;

        int a=f;

        printf("%d ",a);

        printf("%f ",f);

        return 0;

    }

    int a=f; f的值复制一份,将复制的值赋值给a,因此f本身的值不会改变,格式符%f默认输出6位小数

    在表达式中有符号或无符号的charshort都会自动转换成int,下面是举例说明:

    #include<stdio.h>

    int main()

    {

        char c1=12,c2=108;

        printf("%d ",c1+c2);

        return 0;

    }

    会先将c1c2的类型转换int类型,然后再相加,由于c1c2是被转换成表示范围更大的类型,此种转换又叫提升,在函数中也会出现提

    升,当作为参数传递给函数时charshort类型会提升为int类型,float类型则会提升为double类型,举例如下:

    #include<stdio.h>

    int main()

    {

        char ch='a';

        printf("ch保存的ASCII码值:%d ",ch);

        return 0;

    }

    ch会自动转换成int类型,因此不用强制转换

    #include<stdio.h> 

    int main()

    { 

        int d; 

        double x=3.1415926; 

        d=x; 

        return 0;

    }

    d=x;是将double类型转换为int,由于double类型的取值范围要比int广,因此这种转换又叫类型下降,转换后会丢失小数部分的数据

     

     

     

  • 相关阅读:
    转:wcf大文件传输解决之道(1)
    转:WCF传送二进制流数据基本实现步骤详解
    创建一个简单的WCF程序2——手动开启/关闭WCF服务与动态调用WCF地址
    创建一个简单的WCF程序
    转:【专题十二】实现一个简单的FTP服务器
    转:【专题十一】实现一个基于FTP协议的程序——文件上传下载器
    转:【专题十】实现简单的邮件收发器
    转:【专题九】实现类似QQ的即时通信程序
    转:【专题八】P2P编程
    转:【专题七】UDP编程补充——UDP广播程序的实现
  • 原文地址:https://www.cnblogs.com/linuxboke/p/5598599.html
Copyright © 2011-2022 走看看