您的当前位置:首页信息的表示和处理

信息的表示和处理

2024-12-14 来源:哗拓教育

主要研究三种数字表示
1、无符号编码
2、补码编码
3、浮点数编码

一些基本概念


  • 整数表示相对小的数值范围,但是一个精确的结果,浮点数相比可以表示更大的访问,但是一种近似的表示
  • 地址:程序将存储器视为一个巨大的字节数组,称为虚拟存储器,存储器的都由唯一的数字来标示,称为地址
  • 字:机器字长,表明整数类型和指针数据的标称大小,一般字长为32bit即4个字节,他可以提供4GB的虚拟地址空间
  • 数据大小,各个数据类型有不同的大小定义,但在c++中类型大小的定义只是规定了其下限


    QQ截图20140823102039.jpg
  • 寻址和字节顺序:对于大小跨越多个字节的对象需要明白两个基本概念1、对象的地址是多少2、对象在存储器中如何排列这些字节。对于第二点引出了字节顺序的问题,即
  • 布尔代数:围绕1、0数学知识体系,基本运算包括

整数表示


  • 整形数据类型


    QQ截图20140823124036.jpg
  • QQ截图20140823124231.jpg
  • QQ截图20140823124242.jpg
    其中Xw-1为最高位,符号位,权重为-2^(w-1)
    从上述公式可知对于一个w位的有符号数其可以表示的访问为
    QQ截图20140823124621.jpg
  • QQ截图20140823125642.jpg
    QQ截图20140823125103.jpg
    2、有符号数转无符号数T2U(X) = B2U(T2B(X))
    QQ截图20140823125016.jpg
    QQ截图20140823125745.jpg
  • 截断数字
    只是将相应的位截断,后根据位模式进行解析


    QQ截图20140823130943.jpg
  • PS:符号数与无符号数之间的转换存在一定风险,在处理的时候需要特别注意,防止由此产生的溢出导致的bug

整数运算



  • 两个无符号数加法的范围为[0 2^(w+1)-2],因此会出现溢出的情况(无符号数范围[0 2^w-1])
    QQ截图20140823132028.jpg
    QQ截图20140823132037.jpg

  • QQ截图20140823132241.jpg
    QQ截图20140823132230.jpg


  • QQ截图20140823133824.jpg
  • 本质上就是直接运算,之后按照有符号数直接截断解析
    QQ截图20140823133900.jpg
    QQ截图20140823134255.jpg

  • 一般将常数拆解成2的次方的累积和,然后左移位操作,通常有以下两种方式
    QQ截图20140823134502.jpg

  • 采用右移的方式,对于无符号数直接采用逻辑右移即可,但对于补码需要采用算术右移,即需要考虑符号位
    为了使整形结果最终右移的结果向0靠齐,对于补码在右移前,需要考虑增加一个偏移量
    QQ截图20140823135141.jpg
    QQ截图20140823135152.jpg

浮点数


  • QQ截图20140823135341.jpg
    QQ截图20140823135326.jpg
    QQ截图20140823135311.jpg

reference


  • 深入理解计算机系统
显示全文