c笔记02---数据类型

1.    整型 int
    signed short int 有符号短整型,简写:short/int,字长 2 字节(16 位),范围:-32768~32767(也有的计算机里面,int 是 4 位)
    signed long int 有符号长整型,简写:long,字长 4 字节 ;
    unsigned short int 无符号短整型,简写 unsigned int,2 字节,范围:0~65535;
    unsigned long int 无符号长整型,简写 unsigned long,4 字节。
    size_t 无符号整型,在不同编译器上都是 4 字节,代替 unsigned int

2.    浮点型 float
    float 单精度浮点数,字长 4 字节
    double 双精度,8 字节

3.    字符型 char
    字长 1 字节
    字符串声明:char ss[20];

4.    隐式类型转换会把占地小的数据转换成占地大的数据,如果数据大小一样会把有符号的数据转换成无符号的数据。

5.    C 语言中支持如下逻辑操作符(==, !=, >, >=, <, <=, &&, || )
    && 都为真才为真;
    || 有一个为真即为真;
    && 和 || 具有短路特性
    ! 也是一个逻辑操作符,可以对一个逻辑表达式的结果求反。
    
    数学操作符优先级高于逻辑操作符

    & 表示按位与,可以对两个二进制补码进行计算得到一个新的二进制补码。它可以把某个补码中特定的位置清 0。

    | 表示按位或,可以对两个二进制补码进行计算得到一个新的二进制补码。它可以把某个补码中特定的位置设置成 1。

    ^ 表示按位亦或。它可以把某个已知的补码中特定位置变成相反数字。

    ~ 表示按位求反,可以对一个二进制补码进行计算得到一个新的二进制补码。

    << 表示左移操作,可以把一个补码向左移动指定的位数。
    如果移动后没有丢失有效信息则新数据是原有数据的 2 的 n 次方倍。

    >> 表示右移操作,可以把一个补码向右移动制定的位数。如果被移动的数字是无符号数则左边补充 0,否则左边补充符号位。
    如果移动后没有丢失有效信息则原数据是新数据的 2 的 n 次方倍。
    
6.    分别写出 bool, int, float, 指针类型的变量 a 与 “零” 的比较语句。
    bool :
        if ( !a ) or if(a)
    int :
        if ( a == 0)
    float :
        const float EXP = 0.000001        // 定义一个精度,详见下面分析;
        if ( a <= EXP && a >= -EXP)            // 在这个精度范围内,就认为是 0;
    pointer :
        if ( a != NULL) or if(a == NULL)

    分析:说明 EXP 是一个精度类型,计算机中数据以二进制存储,将浮点数的零转为二进制存储是有误差的;
    所以,在精度范围内,我们就认为是零;这样的话,就不能直接用等于或者不等于了,而需要用一个范围来表示;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章