• 信息的处理与表示


    信息存储
        计算机使用字节作为最小的可寻址存储单位。程序将存储视为一个很大的字节数组,成为虚拟存储器
        存储器的每个字节都由一个唯一的十六进制数字表示,称为地址,所有可寻址的地址的集合称为虚拟地址空间。虚拟地址空间是展现给机器级程序的概念性映像。
        计算机的字长(cpu位数)决定了虚拟地址空间的大小,如32位cpu的寻址范围为0~2的32次方,最大虚拟地址为4G,所以32位操作系统的最大可用内存为4G。32位cpu表示的地址总线为32根。
        大端法和小端法:小端法为低地址对应低字节,大端法为低地址对应高字节。Intel处理器大多数采用小端法。
    整数表示
        整型数据类型表示有限范围的整数。负数的范围比正数的范围大1。
        强制类型转换的结果保持位值不变,只是改变了解释这些位的方式。
    整数运算
        编译器使用了一项重要优化,试着用位移和加法运算的组合来代替乘以常数因子的乘法。
    浮点数
        1、IEEE浮点标准用V = (-1)^s * M * 2^E
            s:sign,符号,决定正负。
            M:significand,尾数,通常是[1.0~2.0)范围的小数
            E:exponent,阶码,就是次方数。
       2、IEEE标准定义了一些使之更合理的规则。例如,定义1 / -0将产生-∞,而定义1 / +0会产生+∞
       3、 C语言版本提供了两种不同的浮点数据类型:float 和 double。
       4、浮点数和整数之间的转化:
            从int ---> float可能会发生舍入,但是不会发生溢出
            从int --> double,如果Int的值是在53位以下的(包括53位),会得到一个精确的转换。
            从float --> double, 我们会得到一个精确的转换因为double的精度远远大于float的精度
            从float, double -- > int,这样的转化可能会有问题,一个是从单精度浮点数到Int,由于阶码的存在,要调整尾数的尾数,所以在移位操作的时候可能会丢掉一些低有效位。

  • 相关阅读:
    P3501 [POI2010]ANT-Antisymmetry
    P3498 [POI2010]KOR-Beads(hash表)
    UVA10298 Power Strings
    UVA1714 Keyboarding(bfs)
    P4289 [HAOI2008]移动玩具(bfs)
    Ubuntu分辨率太小的解决方案
    Ubuntu分辨率太小的解决方案
    主板亮红灯,显示器没信号
    主板亮红灯,显示器没信号
    VS注释与取消注释快捷键
  • 原文地址:https://www.cnblogs.com/lolau/p/9827020.html
Copyright © 2020-2023  润新知