C语言基本语法及原理初始:

C语言基本语法及原理初始:

/* ******************************************* *

        数据类型

            说明数据大小

                char       1

                short     2

                int        4

                float      4

                double     8

            构造类型

               

        存储类型

            存放在内存中的位置

            (堆、栈(auto)、静态区域、代码段)

        功能

            代码的操作(干什么)

            + - * / % & ||  是运算符

        控制语句

            选择或循环

       

        函数

* ******************************************** */

   

标识符

    变量:

        1. 数字、字母、下划线

        2. 首字母不可以为数字,且区分大小写

        3. 不可与系统关键字相同

    定义变量的格式:

        <存储类型>    <数据类型>   <变量名>

        |               |           |申请空间的别名

        |               |说明申请的空间的大小

        |               char     short    int 

        |

        说明申请的空间在内存中的位置的。

        auto   static   extern  register

        栈       静态    静态     寄存器

       

        int a = 998; //初始化

        int b; 先定义

        b = 998; 后赋值

    常量:

        直接常量:

            int a = 5;

            float  f = 3.14159;

            "hello  world";

            char c = 'A';

        符号常量

            #define    Pi   3.14159

            int a  = 6;

            int const  a = 6;

            const  int a = 6;

            //const表示将a常量化,不可以通过对a赋值改变a的空间

           

           

存储基本单位:

    位bit

    字节byte   KB     MB  GB

数据的表示方法:

    1.整数:

        整型数据:

            十进制

            八进制   <只能表示整数(char short int long)>

            十六进制 <只能表示整数(char short int long)>

           

            二进制(C语言不支持,但计算机内部只识别二进制)

           

        进制转换:

            十进制<==>二进制

            整数-->二进制  辗转相除,除2求余,从下向上读

            小数-->二进制           乘2取整,从上向下

           

            二进制 ==>八进制

           

        整型数据的有符号与无符号:

            signed int     x; (有符号类型最高位作为符号0表示正数,1表示负数)

            unsigned  int  y; (最高位同样作为有效数据位)

           

        整型的打印:

            有符号类型;

                printf("%d", x);

            无符号类型:

                printf("%u", y);

               

    2.字符:

        ASCII码: 

        原码:

            直接转成二进制,最原始的二进制表示方法, 但在负数运算时,结果出错.进而提出反码.

        反码:

            正数的反码和原码相同,负数的反码是在原码的基础上取反(符号位不变). 反码解决了原码不能计算的问题,但同时带来了-0,进而提出了补码.  (反码加法采用循环进位的方法)

        补码:

            正数的补码和反码相同

            负数的补码在反码的基础上+1。(对原取反+1,符号位除外)

       

        取值范围:

            有符号类型字符 : -128 ~  127

            无符号类型字符 : 0 ~ 255

           

        PS:

            类型的最大值+1 -->变成类型的最小值

            类型的最小值-1 -->变成类型的最大值

   

    3.实型/浮点型:

        单精度 float

            1位符号位 +8位指数位+23小数位 (偏移码+127)

           

            将一个浮点型数据存放进内存:

            1.将浮点型数据转换成二进制指数形式,获取符号位 指数 数据大小

            2.float内存最高位存放符号位,紧接着8位存放指数+127的二进制,低23位存放数据的小数位,没错,数据的整数位直接丢弃(因为二进制数据的整数位一定是1,所以可以省略,还原时加上就行)

            演示:

                6.9 存进内存

            测试:将 17.625存进内存

           

       

        双精度 double

            1位符号位 + 11位指数位 + 52小数位 (偏移码+1023)

            精度范围  能保证15位有效数据

           

       

        判断一个float型变量x是否为0:

            #define  EP   0.000001

            if ( (x<=EP)&&(x>=-EP) )

            {

               

            }

猜你喜欢

转载自www.cnblogs.com/lanbofei/p/9240348.html
今日推荐