C语言之基础部分一(数据类型)

前言

    本部分可以说涵盖c语言础部分各个方位知识点,同时加上做题时相关知识点。

       有的知识点部分一笔概过,对于本人容易出错的地方会着重讲解。

       读者遇到不懂的知识点可以去查找相关资料

1、数据类型分类


2、基本类型分类

     

2.1、整形

      比如0,-12,255,1,32767等等这些都是整型数据。

          整型数据中是不允许出现小数点其它特殊符号

               int a;

              a=1.2;//实质a为1

              printf(“%d”,a)//输出1

             即,给整形赋值浮点型,整形只会保留整数部分

2.1.1、有符号数和无符号数

          对于有符号数,以最高位(左边第一位)作为符号位,

     最高位是0表示的数据是正数,最高位是1表示的数据是负数

          整数10二进制形式: 0 0 0 0 1 0 1 0

          整数-10二进制形式: 1 0 0 0 1 0 1 0

  

          对于无符号整数,因为表述的都是非负数,一个字节中的8位全部用来存储数据,不再设置符号位

         整数10二进制形式: 0 0 0 0 1 0 1 0

         整数138二进制形式: 1 0 0 0 1 0 1 0

2.1.2、变量溢出

     对于有符号的char变量,127加上1等于多少?-128减去1又等于多少?

        对于无符号的char变量,255加1等于多少?0减去1等于多少?

        把一个有符号的-16赋给一个无符号的char变量又等于多少?

         把129赋给有符号的char变量又等于多少?

         如果你非常清楚,下面的这部分你就不要看了;

         如果你不清楚,恭喜你,读完下面的内容将彻底明白。

 

        首先,要明白无符号和有符号的表示。

    无符号8位全部表示数所以能表示2的8次方个数256(0-255)

        有符号的字符,第一个位表示符号位0表示正,1表示负所以只有7位表示数,所以按道理正数和负数各能表示2的7次方个数(128个),共能表示256个数,但是负数和正数的表示方法不同,正数:最高位为0,剩下7位是多少就是多少,如01101110 实际就是1101110=206;而负数:最高位为1,剩下取反加1,如11101110所以是是-0010010=-18,这么一来1000 0000 和 0000 0000这两个就不是一个意思了:前者先取出表示数的(符号位不管)低7位000 0000取反后111 1111,加上1后1000 0000,实际上表示的是这是一个负数,负数的绝对值大小为1000 0000即128,所以表示-128,所以,以0开头的可以表示0到+127这128个数,一1开头的表示-1到-128这128个数,而加法、减法的本质都是一样,就是在原来的码上加个1,11101110(-18ÿ

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值