码迷,mamicode.com
首页 > 编程语言 > 详细

C语言基础篇-数据类型(二)关键字

时间:2018-10-29 00:09:41      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:mil   读取   修饰符   double   float   完全   状态   数值   使用   

导航:

  1. 数据类型

  2. 自定义类型

  3. 逻辑结构

  4. 类型修饰符

  5. 杂项

----->x<------------->x<--------------->x<--------------->x<------------->x<-----
 
 
1 数据类型 (限制 占用内存大小 的 关键字)
  -- char
    硬件最小单位:bit; 软件最小单位 char; [ char(B)=8 bit ]
    char [1 byte]= 8bit = 256 种状态.
    进制: 十进制 八进制 十六进制 二进制
    在硬件描述中 一个char _ _ _ _ _ _ _ _ 8bit 的内存 空间
    如果我这样写:
    char a = 0x1a;
    转换成2进制就是 0001 1010 这样就是对这8个空间为进行赋值.

  -- int 编译器能处理的最优处理单位.
    32位系统   一个周期能走满 32bit == 4B 就是int 的大小.
    16位系统   一个周期能读取 16bit == 2B 就是 shot (int) 的大小.
    64位系统   一个周期能读取 64bit == 8B 就是int 的大小.
    #所以, int的大小不是固定的,是根据操作系统和编译器所决定 .
                
    什么时候用int?   什么时候用char?
    如果用来 描述 数据, 就用int. a.容量大; b.能达到系统的最优处理大小.
    如果用来 描述 硬件, 一般使用char.   
 
  -- long 至少4B 大小的数据长度.
    long的长度最少是4byte.什么意思呢?意义体现在16位的操作系统中. 在16位的系统中,int的大小只有2byte,
    2b == 65353 种状态.如果超过了,就要使用 bouble 或者 long .因为long至少保证 4byte的大小.

  -- unsigned 和 signed 区别 最高字节 是 符号位 还是 普通的数据
    unsigned 无符号 一般用来采集数据
    signed   有符号    就是用来定义用于计算的数值

    二者在位移运算中体现差异.因为有符号数的第一位是符号位正0 负1.
    char a = -1 (0xff) a 在不断左移的过程中, 并不会变成0, 因为 符号位 一直在占位.
    unsigned char b = 0xff b 在不断右移过后,会变成 0x00.

  -- float 和 double 浮点运算
    浮点数 在 内存中的表现形式 跟 整数 是完全不一样的 .
    float 4byte
    double 8byte 非常浪费内存空间,但是精确.

  -- void 这是最神奇的一种数据类型.
    因为它可以转换成 任何数据类型,它更多的意义是 声明 标志,而不是 使用 标志 .
    void a; a = (int)b;
 
2.未完待续...

C语言基础篇-数据类型(二)关键字

标签:mil   读取   修饰符   double   float   完全   状态   数值   使用   

原文地址:https://www.cnblogs.com/kmist/p/9867917.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!