c笔记02---数据类型

这篇博客详细介绍了C语言中的数据类型,包括整型(int, short, long, unsigned)、浮点型(float, double)、字符型(char)以及类型转换和逻辑操作符。还讨论了与零比较的特殊性,如浮点数的精度问题。" 6072057,987940,验证路由器MTU:抓包分析大包分段,"['网络', '测试', '工具', '协议分析']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 是一个精度类型,计算机中数据以二进制存储,将浮点数的零转为二进制存储是有误差的;
    所以,在精度范围内,我们就认为是零;这样的话,就不能直接用等于或者不等于了,而需要用一个范围来表示;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值