字节

来源:互联网 发布:编程界面matlab 编辑:程序博客网 时间:2024/05/01 15:55

                 字节

      bit

      字节 = 8 bit 

      半字 = 2 字节 = 16 bit

      字节 = 4 字节 = 32 bit

   以此列举:int           4 个字节

                      short      2 个字节

                      long       4 个字节

                      float       4 个字节

                      double   8 个字节

                      char       1 个字节

    需要特别注意的是:任何类型指针均为4个字节。

             给出理由  :  指针保存的是地址,指针大小就是这个起始地址的大小,取决于计算机的字长。32位计算机就是4字节,64位计算机就是8字节。而我们所使用的Linux系统是32位系统,所以任何指针的大小都是4个字节。

       再引入unsigned 和signed,以char做示范:

      unsigned  char:

   max:1111 1111  = 255;

   min : 0000 0000  = 0;

      signed   char:

   +:max:0 111 1111:127;

         min : 0 000 0000:0;

   - :min:1 000 0000 :-128;

         max: 1 111 1111:0;

      这里有几个规则需要注意:1.正数的补码就是原码;

                                                   2.负数的补码先取反再加一;

                                                   3.负数的补码求原码也是取反加一;

                                                   4.计算机中保存的都是补码!!

               由此,对于负数最小值:1 000 0000,即先转化为原码0 111 1111 + >>>1 000 0000:128,由于是负数,故得到-128。

     用一个C程序片段来进行练习:

                  signed  char    ch  =  127;

                  ch    =    ch   +   1;

                  printf("ch   =   %d\n");

     其输出结果是-128;同理:-128  + 1 = 127;

     给出理由   :   -128:   1 000 0000

                                   1:   0 111 1111

                                   =       1 111 1111 = 127.

1 0