您的位置:首页 > 编程语言 > C语言/C++

c语言基础01(数据类型)

2017-11-12 10:56 190 查看
              1.数据类型及所占字节

                整型 char,  short,  int , long, long int, long long;   

     (所占字节    1,       2,       4/2,     4  ,      4,          8 )

                浮点型    float,  double;

          (所占字节       4  ,     8     )

                //float   f = 123456789;

                  double  l =123456789;

                运行结果:f=123456792.000000;

                                   
f=123456789.000000

                分析结果; 实型常量不区分float型和double型,可以赋给float型和double型变量,根据变量的类型截取常量中的有效位数字。

           2.char示例(死循环)

            for(char i = 0; i<128;  i++)

           {

                   printf("%d",i);

           }

          char的取值范围为(-128,127),127在计算机内存中为0111 1111,给127+1后得到1000 0000,此为-128的补码,所以“127+1=-128”,循环可以无限进行下去。

           3.求十进制数的二进制,八进制,十六进制以及负数在内存中的存放形式

           例:127进行进制转换

               转换为二进制:将2^7~2^0依次排开,从右向左将127放在第一个大于它的数上面,127比此数大则为1,向右移一位,用127与左边数的差和新的数作比较,比它大则为1反之则为0,依次类推,得到127的二进制数为0111 1111。

               转换为八进制:先转换为二进制,将得到的二进制数从右向左三个数一组排列,将每组的数值算出依次排列则为所求的八进制数,如127的八进制数为0000 0177。

               转换为十六进制:先转换为二进制,将得到的二进制数从右向左四个数一组排列,将每组的数值算出依次排列则为所求的十六进制数,如127的十六进制数为0000 007F。

               {

                        int b=012;   // 01,012表示八进制数

                        int c=Oxa;   //Oxa表示十六进制数

                        //输出b和c的值都为10

               }

           负数在内存中的存放形式为补码,补码等于反码加一,反码等于给原码取反(符号位不变,其余位取反)。

         4.深度解析  char数据类型(迷你型整型)

          有符号类型  signed  char:取值范围  -128~127;

          无符号类型  unsigned  char:取值范围  0~255;

          内存中最高位叫幻数(有时代表符号位)。

           类型转换  隐性类型转换    short  a = 5; int b = a;

                            强制类型转换    int a = (float)10.5;

                           隐性类型转换原则        double         <------ float

                                                           unsigned long

                                                          unsigned  int

                                                                  long

                                                                  int            <----  short(char)

         5.ASCII的取值为什么是0-127?

          对于无符号char
0-255,有符号0-127,所以是0-127。

        6、进入第一个程序"hello
world",从头文件讲起到,返回值,为什么可以不写int?库函数?printf()需要的头文件?怎么调试?每一个程序执行要分为哪几步?

          (1)返回值不写int ,可以写 void,那么最后不必return 0;

          (2)主函数中未定义printf的使用但c程序开头我们调用了库函数(#include <stdio.h>);

          (3)调试需设置断点;

          (4)程序执行步骤:编辑,编译,链接,执行。

          7.变量必须先定义后初始化再使用,定义在函数外的变量默认值为0。

       8.

               char a=5,b=-5;

               short x,y;          

               x=a;               //内存中char-->short只补符号位(对于之前的空位)

              y=b;

       9.浮点数在内存中的存储

       一个浮点数分为阶码和尾数两部分,阶码用于表示小数点在该数中的位置(即二进制数用计数法表示后的指数),尾数表示数的有效数值。由于阶码表示小数点的位置,所以阶码总是整数,可以为正整数,也可以为负整数;尾数可以采用整数和纯小数的形式。(即将浮点数先表示为二进制数,将二进制数用科学计数法表示,阶码为此数的幂的二进制表示,尾数为小数点后二进制数)

       在计算机内部,阶码通常采用补码形式的二进制整数(取指数加127后的二进制数)表示,尾数通常采用二进制小数的原码形式表示。

       浮点数最高位为符号位,0为正,1为负;接下来八位为阶码部分;后23位为尾数部分。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: