C语言学习笔记_01-数据类型


数据类型

------------------ | ----------- | ------------------------------------ |
        | 基本整型              | int         | C标准未规定,与系统相关.一般占4个字节 |
        | 短整型                | short       | 2                                    |
        | 长整型                | long        | 4                                    |
        | 单精度实型            | float       | 4                                    |
        | 双精度实型            | double      | 8                                    |
        | 长双精度实型          | long double | 与系统相关,VC++中占8个字节           |
        | 字符型                | char        | 1                                    |
        | 无符号整型(正整数和0) | unsigned    | 用来修饰 int 、short 和long          |
  • 存储方式

    • 不同数据类型的存储形式不同

      • Inter CPU上的整数

        • 排列顺序图

          低位字节 高位字节
      • 实型数

        • 定点数
          • 12.34567
        • 浮点数
          • 12.34567*10^0
          • 12.3456.7*10^-4
          • 1.234567*10^1
        浮点数的探究
        • 浮点数并非真正意义上的实数,只是其在某种范围内的近似

        • ANSI C未规定3种浮点类型的长度、精度和表数范围

        • N = S * r^j 表示浮点数

          阶码j (指数部分) 尾数S(小数部分)
          阶码符号|阶码的数值 尾数符号|尾数的数值
          • 系统如果使用更多位数存储小数部分,精度提高但是表数(数值)范围减小
          • 系统如果使用更多尾数存储指数部分,精度下降但是表数(数值)范围提高
    • 字符型数据是以二进制编码方式存储在内存中

      • 一个字节保存一个字符(英文字母、数字、控制符)
      • 字符常数就是一个整数
    • 字符编码的方式取决于计算机系统使用的字符集

      • ASCII 字符集为例
      • 每个字符具有一个 0~127之间的编码值(只利用了7个bit位,最高位未利用)
      • 最高位被用作奇偶校验位
        • 奇偶校验
          • 校验代码在传输过程中是否出现错误
          • 奇校验规定
            • 若一个字节的编码序列中1的个数是奇数,则校验位,置为1,否则置为0.
          • 偶校验规定与奇校验相反
    • ASCII 扩展码

      • 利用了最高位,值扩展128~255
      • 存放英文的制表符、部分英标符和其他符号
      汉字是如何存储的
      • 汉字编码,必须兼容ASCII 码,使用连续的2个字节,仅在其第7位均为1时被当作是汉字
      • GB2312BIG5
    • 更强大的编码

      • 国际标准化组织(ISO)制定了Unicode字符集,为各种语言中的每个字符设定统一且唯一的数字编号
      • 所有字符统一用两个字节保存,宽字节字符–65536个字符
    • 计算变量类型占内存空间的大小

      • 使用C运算符–sizeof(变量名)
      • 计算类型所占的字节数
    • 总结


  目录