• 五、数据类型(3):浮点数与字符


    1、浮点类型:double和float,它们是什么,如何输入输出?

    2、浮点的范围和精度:浮点数能表示哪些数?

    输出精度5

    在%和f之间加上.n可以指定输出小数点后几位,这样的输出是做4舍5入的

    printf("%.3f
    ",-0.0049);
    printf("%.30f
    ",-0.0049);
    printf("%.3f
    ",-0.00049);
    超过范围的浮点数

    (1)printf 输出 inf 表示超过范围的浮点数:正负无穷大

    (2)printf 输出 nan 表示不存在的浮点数

    浮点运算的精度

    (1)带小数点的字面量是 double 而非 float

    (2)float 需要用 f 或 F后缀来表明身份

    浮点数的内部表达

    选择浮点类型

    (1)如果没有特殊需要,只使用double

    (2)现代CPU能直接对double 做硬件运算,性能不会比float 差,在64位的机器上,数据存储的速度也不比float 慢。

    3、字符类型:char是整数也是字符

    (1)用单引号表示的字符字面量

    'a'
    '1'

    (2)''也是一个字符

    (3)printf 和scanf 里用%c来输入输出字符

    字符的输入输出

    ——如何输入‘1’这个字符给 char c ?

    scanf("%c",&c);    //——>  1
    scanf("%d",&i); c=i;     //——>  49

    ——‘1’的ASCII编码是49,所以当c==49时,它代表‘1’

    printf("%i %c
    ",c,c);
    混合输入

    ——有何不同?

    scanf("%d %c",&i,&c);    
    scanf("%d%c",&i,&c);    
    字符计算

    (1)一个字符加一个数字得到ASCII码表中那个数之后的字符

    char c='A';
    c++;
    printf("%c
    ",c);

    (2)两个字符的减,得到它们在表中的距离

    int i='Z'-'A';
    printf("%d
    ",i);
     
    大小写转换

    (1)字母在ASCII表中是顺序排列的。

    (2)大写字母和小写字母是分开排列的。

    (3)‘a’-'A'可以得到两段之间的距离,于是

    a+'a'-'A'  //可以把一个大写字母变成小写字母
    a+'A'-'a'  //可以把一个小写字母变成大写字母

    4、逃逸字符:反斜杠开头的字符是特殊的控制字符

    ——用来表达无法印出来的控制字符或特殊字

    逻辑类型
    #include<stdbool.h>

     之后就可以使用 bool 和 true、flase

    bool的运算

    (1)bool 实际上还是以int的手段实现的,所以可以当作int来计算。

    (2)也只能当作int 来输入输出

    5、类型转换:如何在不同类型之间做转换?

    自动类型转换

    ——当运算符的两边出现不一致的类型时,会自动转换成较大的类型。

    (1)大的意思是能表达的数的范围更大

    (2)

    char  ——> short  ——> int ——> long ——>long long

    (3)

    int ——> float ——> double

    ——对于printf ,任何小于int的类型会被转换成Int;float会被转换成double

    ——但是scanf不会,要输入short,需要%hd

    强制类型转换

    ——要把一个量强制转换成另一个类型(通常是较小的类型),需要:

    (类型) 值
    
    int10.2
    short32

    ——注意这时候的安全性,小的变量不总能表达大的量

    short32768

    只是从那个变量计算出了一个新类型的值,它并不改变那个变量,无论是值还是类型都不改变。

    double a=1.0;
    double b=2.0;
    int i=(int) a/b;

    ——强制类型转换的优先级高于四则运算

    int a=5;
    int b=6;
    double d=(double)(a/b);
  • 相关阅读:
    Linux 内核编码风格
    三种批量插入数据的方法
    一次清除SQL SERVER错误日志的体会!
    打开潘多拉的魔盒——软件设计过程(1)——序
    bloom特效
    wcf基础知识之端口共享 portSharing
    高质量代码(一)
    Luence使用IKAnalyzer分词实例 及 IKAnalyzer扩展词库
    通过什么来衡量C# Socket服务的效能
    iOS开发进阶之静态链接库
  • 原文地址:https://www.cnblogs.com/Strugglinggirl/p/9033873.html
Copyright © 2020-2023  润新知