• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

又亦

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

基本数据类型和一些位运算的总结

一   关键字

C语言提供的具有特殊功能的字符;

1,基本数据类型

      int :整型数据,通常为默认类型;

      float:单精度浮点型;

      double:双精度浮点型;

      char:字符型类型数据,属于整型类型;

      void:空类型,声明函数无返回值或参数,声明无类型指针,显示丢弃运算结果;

在这里谈个溢出问题,由于我写函数题时,经常习惯性地把数据都定义为 int 类型,导致频繁地代码过不了关,所以大家一定要注意根据所储存的数据长度来正确定义类型,我现在上个例子来说明一下:

 

在这里我用的是float来定义变量,所得结果是1.000004,float的数据长度是32位,在浮点型数据类型中不算高的,以下是把float换成double的结果:

 显然由于结果数据太长,导致数据溢出,所显现出来的两种数据类型定义变量的结果不同,为避免这种情况发生,要多留意数据长度来选择合适的数据类型;

2, 类型修饰关键字

       short:修饰int,短整型数据,可省略被修饰的int;

       long:修饰int,长整型数据,可省略被修饰的int;

       signed:修饰整型数据,有符号数据类型;

       unsigned:修饰整型数据,无符号数据类型;

这里short和long都是比int精度低或高的整型数据类型,unsigned储存单元全部用于表示数值,为了处理不同取值范围的整数,C语言提供了扩展的整数类型,它们的表示方法是在int前加上限定词short,long,unsigned;

3,    复杂类型关键字

       struct:结构体声明;

       union:共同体声明;

       enum:枚举声明;

       typedef:声明类型别名;

       sizeof:得到特定类型或特定类型变量的大小,如:计算字节;

二,位运算

1,  是什么?

       是直接对整数在内存中的二进制位进行操作的方法(只能操作整形数据)

2,   有什么用?

        直接通过操作二进制的位来实现运算,高效;

3,   怎么用?

         &与运算:对应两个二进位均为1时,结果位才为1,否则为0.(有假为假==0)

         |或运算:对应的两个二进位有一个为1时,结果位就为1,否则为0.(有真为真==1)

        ^异或运算:对应的二进位不同时为1,否则为0.(不同为真==1,否则为假==0)

        ~取反运算:对整数的各二进位进行取反,包括符号位(0变1,1变0,真假互换)

         <<左移:把整数的各二进位全部左移n位,高位丢弃(包括符号位),低位补为0;

        左移n位就是乘以2的n次方(但移动后符号位变化除外,符号位改变则正负改变)

        >>右移:把整数的各二进位全部右移n位,符号位不变。高位的空缺是正数补0;

        是负数高位补0或补1,取决于编译系统的规定,右移n位就是除以2的n次方。

 

posted on 2021-10-08 20:33  又亦  阅读(307)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3