C语言基础(基本数据类型)

1.进制转换:
    (1)二进制、八进制、十进制、十六进制的表示形式:

            二进制:0 1
             八进制:0 1 2 3 4 5 6 7 
             十进制:0 1 2 3 4 5 6 7 8 9
             十六进制:0 1 2 3 4 5 6 7 8 9 a b c d e f 

    (2)二进制、八进制、十六进制 转换为 十进制 


        方法:对应位 乘以 对应位的权值再求和

    例如:十进制123转换为十进制:123 == 1 * 100 + 2 * 10 + 3 * 1
                                                       == 123 

                二进制1001 1110 转换为十进制 158

                八进制17  转换为十六进制为 15


                十六进制1af  转换为八进制为15 + 160 + 256= 431 

       (3)十进制 转换为 二进制、八进制、十六进制


       方法: 十进制数除以进制数得到的余数逆序排列

        (4)二进制 八进制 十六进制之间的转换:


                    方法:八进制1位对应二进制3位


                    十六进制1位对应二进制4位

2.程序如何在C语言中被运行起来?


    程序(外存中)


    执行(加载到内存中)


    程序运行结束(回收内存空间)

3.数字在内存中的存储:


             正数在计算机中存放对应的二进制数


             负数在计算机中存放补码


                   (1)求补码的方法:正整数的补码是其二进制表示,与原码相同;求负整数的补码,将其原码除符号位外的所有位取反(0变1,1变0,符号位为1不变)后加1

4.gcc编译的流程步骤:
    gcc filename.c 

    1.预处理
        处理和#号相关代码

        (1).头文件展开
        #include 
        (2).宏定义替换
        #define  M    100  
        (3).条件编译
        #if #elif #else #endif #ifndef #ifdef 

        gcc -E filename.c -o filename.i 

如图预处理的实现过程:

    2.编译
        将C语言程序编译成汇编代码

        gcc -S filename.c -o filename.s 

如图为编译过程:

    3.汇编
        将汇编代码编译成二进制代码

        gcc -c filename.c -o filename.o 

如图为汇编过程:

    4.链接 
        将多个二进制代码链接成为一个可执行程序

        gcc filename.c -o filename 

如图为链接过程:


   1.数据类型分类
        (1)基本数据类型:
            整形数据 short int long 
                    short (signed short)
                          unsigned short 
                    int   (signed int)
                          unsigned int 
                    long  (signed long)
                          unsigned long 

            浮点型数据 float double 
            字符型 char
            逻辑类型(泊尔类型) bool 
            缺省类型(void)
        
        (2)构造数据类型:
            结构体
            共用体
            枚举类型

    (3)基本数据类型
        1.整数类型:

            名称                                                    占内存空间               值域范围                 存储方式
            short: 短整形                                      2个字节空间         -32768 - 32767          补码
            unsigned short: 无符号短整型           2个字节空间         0 - 65535               对应的二进制数
            int:   整形                                           4个字节空间         -21亿 - 21亿            补码
            unsigned int:   无符号整形                 4个字节空间         0 - 42亿                对应的二进制数
            long:  长整型                                      4个字节空间         -21亿 - 21亿            补码
            unsigned long:  无符号长整型            4个字节空间         0 - 42亿                对应的二进制数

            练习:
                编写程序测试数据类型所占字节数:
                    short
                    int
                    long
                    float 
                    double 
                    char 
                     void 

如图为练习代码与结果:

 2.浮点数类型:
            浮点型数据类型主要分为三种:
              float:单精度浮点型
              double:双精度浮点型
            单精度和双精度
            精度是指计算机表达小数近似值的一种方式
             单精度32位二进制,4个字节:
             双精度64位二进制,8个字节。
float:单精度浮点型,占字节数为4,用32位二进制描述,有符号是7个有效位,无符号是8个有效位。
double:双精度浮点型,占字节数为8,用64位二进制描述,有符号是15个有效位,无符号是16个有效位。

 3.字符型:
            char 
            a .. z
            A .. Z 
            # ? .. 

            ASCII码表:


            字符和数字的对应关系

            a -> 97 

            名称                内存空间大小                值域范围            存储方式 
    unsigned char       1个字节                       0 - 255             存储字符在ASCII码表中对应数字制形式 
            signed char         1个字节                    -128 - 127 

        4.逻辑类型:
            bool 

            名称                内存空间大小            值域范围                存储方式 
     泊尔类型 bool       1个字节                    true                    1
                                                                 false                   0

            在C语言中所有的非0值均为逻辑真值
                            0值为逻辑假值

        5.缺省类型:
            void 

            搭配函数和指针使用

            void a;

2.常量和变量:
        1.常量: 在程序运行过程中值不允许发生改变的量
        2.变量: 在程序运行过程中值可以发生改变的量
        3.表达式:由一个或者多个运算符连接的变量和常量组成的式子

    1.整形常量:
        默认为int类型

        100         int类型
        100l        long类型
        100u        unsigned int类型 
        100ul       unsigned long类型
        100L 
        100U 
        100UL 

        0123        八进制常量
        0x1a        十六进制常量
        0X1A

    2.整形变量:
        1.变量要先定义再使用
            1.变量定义的形式:
                数据类型 变量名;

                1.变量名可以由字母、数字、下划线构成不能以数字开头
                2.变量名不能与C语言关键字重名
                3.变量名最好不要与库函数重名
                4.变量名最好是见名知意 
                    
                    驼峰法:
                    int TempNum;
                    int MaxCnt;
                    int MinNum;
                    int AvgScore;

                    内核法:
                    int temp_num;
                    int max_cnt;
                    int min_cnt;
                    int avg_score;

        2.变量拥有存储空间,也有值域范围

    3. 浮点型常量:
        默认为double类型 

        3.1415          double类型
        3.1415f         float类型 
        3.1415e8
        3.1415e-8
        3.1415E8
        3.1414E-8 

    4. 浮点型变量:
        double d;
        float f;

    5.字符型常量:
        'a' 'A'
        'z' 'Z'
        '?' '#'
        '~' ' '
        '\'' : '号
        '\n' : 换行符
        '\t' : 横向制表符
        '\v' : 纵向制表符
        '\r' : 回车符
        '\b' : 退格符
        '\\' : \符 
        '0'
        '1'  : 字符1 
        '2'  
        '3'
        '4'
        '5'
        '6'
        '7'
        '8'
        '9' 
        '\0' : 字符\0

        '1' -> ASCII码表 -> 49      
        1   : 1

        '0'  : 48 
        0    : 0
        '\0' : ASCII码值为0 用来标识字符串的结尾

        '\123' : 八进制123对应的字符
        '\x32' : 十六进制32对应的字符  

    6.字符型变量:
        char ch;

    7.字符串常量

    8.标识常量

练习

要将“China”译成密码,密码规律是:用原来的字母后面第4个字母代替原来的字母。例如,字母“A”后面第4个字母是“E”,用“E”代替“A”因此,“China”应译为"Glmre"请编一程序,用赋初值的方法使cl、c2、c3、C4、c5这5个变量的值分别为C’“h”i”n'a’,经过运算,使cl、c2、c3、c4、c5分别变为‘G’'l''m''r''e',并输出。

程序和运行结果如下图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值