zoukankan      html  css  js  c++  java
  • 二进制数据表示方式

    整理一下,便于回忆

    正数存储->首位表示符号位->原码存储

    例如:8位int数据 int8

    1->0 000 0001

    负数存储->首位为符号位->原码->取反码->取补码

    例如:8位int数据  int8

    -1->1 000 0001->1 111 1110->1 000 0010

    为何要取反码和补码?

    1.方便减法运算:

    如:8-3,对3先取反变为(0-3),然后直接相加变为8+(0-3),完成减法

    2.计算机存储要求一一对应,如果不去取补码,将会出现-0,取补码可以解决

    浮点型存储:

    存储形式:

    计算公式

    说明:

    S表示符号位。对应值s满足:n>0时,s=0; n<0时,s=1。
    E表示指数位,位于S和M之间的若干位。对应值e值也可正可负。
    M表示尾数位,也叫有效数字位(significand)、系数位(coefficient), 甚至被称作"小数"。
    浮点型数据包括:
    名字 位数 精度 范围
    float 32 7 ±1.5 × 10?45 to ±3.4 × 1038
    double 64 15/16 ±5.0 × 10 ?324 to ±1.7 × 10308
    浮点数的精度如何得到?
     
    答:因为浮点数只有23位(float),2^23换算成十进制有7位数字
    浮点数为何损失精度?
    答:因为二进制不能完整表示出某些小数
     
     
    decimal数据类型
    decimal 内部使用 4 个 32-bit 的 System.Int32 来存储,占用 128 bits = 16 bytes
    存储结构
    由 1 位符号、96 位整数以及比例因子组成,比例因子用作 96 位整数的除数并指定整数的哪一部分为小数。比例因子隐式地定为数字 10 的幂,指数范围从 0 到 28。因此,Decimal 值的二进制表示形式为:((-296 到 296) / 10(0 到 28))
    类型 位数 精度 范围
    decimal 128 28 到 29 位有效位 ±1.0 × 10-28 到 ±7.9 × 1028
    C#中如果希望实数被视为 decimal 类型,请使用后缀 m 或 M
     
    问题:decimal是浮点类型吗?
     
    其他类型,以后补充,如有错误,欢迎指正。
     
  • 相关阅读:
    3.K均值算法
    2.机器学习相关数学基础
    1. 机器学习概述
    15、语法制导的语义翻译
    14、算符优先分析
    13、自下而上语法分析
    12、递归下降语法分析
    11、LL(1)文法的判断,递归下降分析程序
    10、消除左递归
    4.K均值算法--应用
  • 原文地址:https://www.cnblogs.com/feichangnice/p/5236881.html
Copyright © 2011-2022 走看看