【计算机组成原理】数据的表示与运算

计算机数据表示、运算及硬件实现详解

在这里插入图片描述

上期回顾: 【计算机组成原理】计算机系统概述
个人主页:GUIQU.
归属专栏:计算机组成原理

在这里插入图片描述

正文

1. 数据表示基础

1.1 数制及其转换

  • 常用数制
    • 十进制(Decimal):日常生活中最常用的数制,采用 0 - 9 十个数字符号来表示数,逢十进一。例如,数字 25 表示 2 个十和 5 个一,其基数为 10。
    • 二进制(Binary):计算机内部采用的基本数制,只有 0 和 1 两个数字符号,逢二进一。例如,二进制数 101 表示 1 个四(2²)、0 个二(2¹)和 1 个一(2⁰),其基数为 2。
    • 八进制(Octal):采用 0 - 7 八个数字符号,逢八进一,基数为 8。例如,八进制数 37 表示 3 个八(8¹)和 7 个一(8⁰)。
    • 十六进制(Hexadecimal):使用 0 - 9 以及 A - F(分别表示 10 - 15)十六个符号来表示数,逢十六进一,基数为 16。例如,十六进制数 2A 表示 2 个十六(16¹)和 10 个一(16⁰)。
  • 数制转换方法
    • 十进制转二进制:常用的方法是除 2 取余法。例如,将十进制数 13 转换为二进制,过程如下:
      13 ÷ 2 = 6 …… 余 1
      6 ÷ 2 = 3 …… 余 0
      3 ÷ 2 = 1 …… 余 1
      1 ÷ 2 = 0 …… 余 1
      从下往上将余数排列可得二进制数 1101。
    • 二进制转十进制:采用位权展开法。例如,二进制数 1011 转换为十进制,计算为 (1×2³ + 0×2² + 1×2¹ + 1×2⁰ = 8 + 0 + 2 + 1 = 11)。
    • 二进制与八进制、十六进制的转换:二进制转八进制是每 3 位二进制数对应 1 位八进制数,从右往左分组转换。例如,二进制数 110101 可分为 011 和 0101,对应的八进制数为 35。二进制转十六进制则是每 4 位二进制数对应 1 位十六进制数,同样从右往左分组,如二进制数 1101101 可分为 0110 和 1101,对应的十六进制数为 6D。

1.2 数据的编码表示

  • 原码
    • 原码是一种简单直观的机器数表示法,最高位为符号位(0 表示正数,1 表示负数),其余位表示数值的绝对值。例如,对于 8 位二进制原码,+5 的原码表示为 00000101,-5 的原码表示为 10000101。
    • 原码的优点是简单易懂,缺点是在进行加减法运算时,需要单独处理符号位,运算规则相对复杂,并且会出现 +0 和 -0 有不同表示形式(在 8 位原码中,+0 表示为 00000000,-0 表示为 10000000)等问题。
  • 反码
    • 正数的反码与原码相同,负数的反码是在原码的基础上,除符号位外,其余各位按位取反。例如,8 位二进制中,+5 的反码是 00000101,-5 的反码是 11111010。
    • 反码在一定程度上为后续的补码运算做了铺垫,但同样存在 +0 和 -0 表示不同(+0 反码为 00000000,-0 反码为 11111111)等问题,运算时也不够简洁高效。
  • 补码
    • 正数的补码与原码相同,负数的补码是在其反码的基础上加 1。例如,在 8 位二进制下,+5 的补码是 00000101,-5 的补码是 11111011(先求 -5 的反码 11111010,再加 1 得到补码)。
    • 补码的优势在于可以将减法运算转化为加法运算,简化了计算机的运算电路设计,并且解决了 +0 和 -0 表示不一致的问题(在补码中,+0 和 -0 的补码都是 00000000),是计算机中最常用的有符号数表示方式。
  • 移码
    • 移码常用于表示浮点数的阶码,它是在补码的基础上,将符号位取反得到的。例如,对于 8 位二进制数,若补码为 10000000,则移码为 00000000。
    • 移码的特点是便于比较大小,并且可以直观地反映出数的大小顺序,常用于计算机中对浮点数阶码的处理等场景。

2. 定点数的表示与运算

2.1 定点数的表示

  • 定点整数
    • 小数点固定在数的最右边,即所有数位都表示整数部分。例如,在 8 位二进制定点整数表示中,如果约定最高位为符号位,那么能表示的数值范围是(-(2⁷) )到(2⁷ - 1),即 -128 到 127。
    • 常用在一些只需要处理整数的应用场景中,比如计数器、学号编码等,计算机内部会按照相应的编码规则(如原码、补码等)来存储和处理这些定点整数。
  • 定点小数
    • 小数点固定在符号位之后,也就是最高位是符号位,后面的数位表示小数部分。例如,对于 8 位二进制定点小数,若按补码表示,能表示的数值范围有所不同,其绝对值最大的正数是 (0.1111111)(对应十进制的接近 1 的小数),绝对值最大的负数是(-0.0000001)等。
    • 常用于一些对精度要求不是特别高的小数处理场景,比如一些简单的比例系数、概率值等的表
内容概要:本文介绍了一个基于MATLAB实现的无人机三维路径规划项目,采用蚁群算法(ACO)多层感知机(MLP)相结合的混合模型(ACO-MLP)。该模型通过三维环境离散化建模,利用ACO进行全局路径搜索,并引入MLP对环境特征进行自适应学习启发因子优化,实现路径的动态调整多目标优化。项目解决了高维空间建模、动态障碍规避、局部最优陷阱、算法实时性及多目标权衡等关键技术难题,结合并行计算参数自适应机制,提升了路径规划的智能性、安全性和工程适用性。文中提供了详细的模型架构、核心算法流程及MATLAB代码示例,涵盖空间建模、信息素更新、MLP训练融合优化等关键步骤。; 适合人群:具备一定MATLAB编程基础,熟悉智能优化算法神经网络的高校学生、科研人员及从事无人机路径规划相关工作的工程师;适合从事智能无人系统、自动驾驶、机器人导航等领域的研究人员; 使用场景及目标:①应用于复杂三维环境下的无人机路径规划,如城市物流、灾害救援、军事侦察等场景;②实现飞行安全、能耗优化、路径平滑实时避障等多目标协同优化;③为智能无人系统的自主决策环境适应能力提供算法支持; 阅读建议:此资源结合理论模型MATLAB实践,建议读者在理解ACOMLP基本原理的基础上,结合代码示例进行仿真调试,重点关注ACO-MLP融合机制、多目标优化函数设计及参数自适应策略的实现,以深入掌握混合智能算法在工程中的应用方法。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

【Air】

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值