zoukankan      html  css  js  c++  java
  • C语言再学习——数据类型

    C语言数据类型

     

    原码:最高位表示符号位:0表示+,1表示-;

    [+1] = 0000 0001

    [-1] = 1000 0001

     

    反码:

    反码转反码:对反码再一次求反码

    正数的反码是其本身;

    负数的反码是其原码的基础上,符号位不变,其他位各个取反。

    [+1] = [00000001] = [00000001]

    [-1] = [10000001] = [11111110]

     

    补码:

    补码转原码: 对补码再一次求补码

    正数的补码是其本身;

    负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)

    [+1] = [00000001] = [00000001] = [00000001]

    [-1] = [10000001] = [11111110] = [11111111]

     

    在计算机内部不使用原码(原因:由于在做减法计算时会出现错误),反码(原因:对于0这个数值比较特殊,+0和-0的反码表示不同)表示数值。计算机采用的是补码进行采用存储数据。

    详见:http://www.cnblogs.com/zhangziqiu/archive/2011/03/30/ComputerCode.html

     

    数据类型决定了占用内存空间大小。

    高占位浮可以打印低占位浮,使数据的大小不会缺失,但是低占位打印高占位可能导致数据的缺失。例如:int类型可以打印short类型和char类型。

     

    float类型:

    无论是单精度还是双精度在存储中都分为三个部分:

    1. 符号位(Sign) : 0代表正,1代表为负
    2. 指数位(Exponent):用于存储科学计数法中的指数数据,并且采用移位存储
    3. 尾数部分(Mantissa):尾数部分

     

    其中float的存储方式如下图所示:

     

    而双精度的存储方式为:

     

     

     

    float和double类型是有精度问题的:float到小数点第6位,double类型的精度是到小数点后面第15位。

     

    如非声明,则为原创 糊涂猫until

     

  • 相关阅读:
    7人脸识别
    1图片视频文件操作基础
    3直方图与二值化,图像梯度
    6模板匹配(人脸匹配案例)
    基础习题
    碎片知识点整理
    详解:MySQL数据表损坏的正确修复方案
    前端开发:模块化 — 高效重构
    分享几个基于jQuery不错的前端相册展示插件代码
    程序员编程10年的心得和体会
  • 原文地址:https://www.cnblogs.com/BeyondAverage0908/p/4546157.html
Copyright © 2011-2022 走看看