当前位置: 首页 > article >正文

【计算机专业漫谈】【计算机系统基础学习笔记】W2-2-1 原码和移码表示

连续补番补了四天辉夜大小姐,赤坂明把漫画画蚌了是真的没想到,好气哦,继续更新
利用空档期时间学习一下计算机系统基础,以前对这些知识只停留在应试层面,今天终于能详细理解一下了。参考课程为南京大学袁春风老师的计算机系统基础MOOC,参考书籍也是袁老师的教材,这是我的听课+自查资料整理后的笔记

W2-2-1 原码和移码表示

定点数的编码表示

  • 符号化数字:定/浮点表示解决了小数点的表示问题。但是,对于一个数值数据来说,还有一个正/负号的表示问题。计算机中只能表示0和1,因此,正/负号也用0和1来表示。这种将数的符号用0和1表示的处理方式称为符号数字化。一般规定0表示正号,1表示负号。
  • 机器数:通常将数值数据在计算机内部编码表示后的数称为机器数。
  • 真值:而机器数真正的值(即现实世界中带有正负号的数)称为机器数的真值。
  • 有符号数,第一位二进制是符号位,正号用0表示,负号用1表示,数值位不变;无符号数没有符号位。

原码表示法

一个数的原码表示由符号位直接跟数值位构成,因此,也称“符号–数值”(sign andmagnitude)表示法。原码表示法中,正数和负数的编码表示仅符号位不同,数值部分完全相同。比如-1的原码(8位二进制)表示为10000001,+1为00000001

容易理解,但是:

  • 0 的表示不唯一,有正0和负0之分,故不利于程序员编程
  • 加、减运算方式不统一
  • 需额外对符号位进行处理,故不利于硬件设计
  • 特别当 a<b时,实现 a-b比较困难

从 50年代开始,整数都采用补码来表示,但浮点数的尾数用原码定点小数表示。

移码表示Excess(biased) notion

将每一个数值(原码)加上一个偏置常数(Excess/ bias)
通常,当编码位数为n时,bias取 2 n − 1 2^{n-1} 2n1 2 n − 1 − 1 2^{n-1}-1 2n11
【例】n=4, E b i a s e d = E + 2 3 E_{biased}=E+2^{3} Ebiased=E+23 b i a s = 2 3 + 1000 B bias=2^{3}+1000B bias=23+1000B
所以偏置常数是8,比如-7这个值,加上偏置常数就是1即-7(+8)~0001B,比如+7(+8)~1111B

0的移码表示唯一,当bias为 2 n − 1 2^{n-1} 2n1,移码和补码仅第一位不同。移码用来表示浮点数的(小数点的位置),用移码表示指数(阶码)便于浮点数加减运算时的对阶操作(比较大小)
【例】 1.01 × 2 − 1 + 1.11 × 2 3 1.01\times2^{-1}+1.11\times2^{3} 1.01×21+1.11×23
计算机存储数据按补码存储
补码111(-1) < 011(3)
如果按无符号数对比,左边-1反倒大了,为了简化比较,把所有的指数加偏置常数,比如偏置常数为4,则-1+4(011) < 3+4=7(111),这样去比较,很容易得到左边小于右边,所以移码主要是为了比较浮点数阶的大小。


http://www.kler.cn/news/18482.html

相关文章:

  • vue概述
  • Go数据机构----栈与队列
  • CANoe以太网配置 Network-Based Access Mode
  • 离散化(算法)
  • 卫星下行链路预算模型(未完待续)
  • JavaScript (七) -- JavaScript 事件(需要了解的事件的运用)
  • C++运算符重载
  • 可视化绘图技巧100篇分析篇(二)-生存曲线(LM曲线)(补充篇)
  • EMC VNX登录Unisphere错误 certificate has invalid date问题处理
  • DC-8通关详解
  • orin配置系统
  • api数据接口文档_接口文档示例(以1688平台API接口文档实例演示)
  • HID Relay, 有线键盘转蓝牙项目学习:记一次失败的尝试
  • 密码学:古典密码.
  • 创新驱动 共建生态|鲲鹏开发者峰会2023·GBASE南大通用技术论坛成功举办
  • Docker run命令
  • WebRTC源码目录结构
  • 欧几里得算法,辗转相除法的证明
  • 思科网络交换机配置命令(详细命令总结归纳)
  • 手把手带你进入爬虫的世界
  • 4种智能指针
  • PMP证书“扫盲”时间2023年考证人快看过来
  • 基于springboot的医院信管系统
  • 备忘录模式
  • 网络路径下倾斜模型生产流程-空三计算,像控刺点
  • vue_组件基础
  • chatgpt的150个指令大全
  • GraphHopper调研笔记
  • Linux | Ubuntu配置JDK源码编译环境
  • canvas的三种渲染模式的区别