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

计算机系统基础(二)

1.数值数据的表示

为什么采用二进制?

  • 二进制只有两种基本状态,两个物理器件就可以表示0和1
  • 二进制的编码、技术、运算规则都很简单
  • 0和1与逻辑命题的真假对应,方便通过逻辑门电路实现算术运算

数值数据表示的三要素

  • 进位记数制(十进制、二进制、十六进制)
  • 定浮点表示(解决小数点问题,定点小数:小数点固定居于最高位。定点数的原码、补码等还解决了正负号的问题)
  • 如何用二进制编码

原码与补码

首先我们先看原码

显而易见,负数的表示就是最高位取1,但是这样存在以下问题

  • 0 的表示不唯一
  • 加、减运算方式不统一
  • 需额外对符号位进行处理
  • 特别当 a<b时,实现 a-b比较困难

所以我们又引入补码的概念(机器数就是补码)

补码=模+该数本身(mod模),该数最高位必须是0

我们就可以得到:123的补码=0111 1011;-123的补码=1000 0101,再多举几个例子,我们发现:

  • 正数的补码就是其本身
  • 负数的补码等于对应正数补码的“各位取反、末位加1
  • 正数补码最高位是0,负数补码最高位是1

以及一些结论:

对于某一确定的模,某数减去小于模的另一数,总可以用该数加上另一数负数的补码来代替;

让我们来举一个例子:

最后结果1 0011 1111,再将其mod2^8(运算器只有有限位,假设为n位,则运算结果只能保留低n位,因此,其模为2^n),得到最终结果0011 1111

接下来是特殊数的补码

整数

整数分为无符号整数和有符号整数,例如8位无符号整数最大值1111 1111为255,有符号整数最大值0111 11111为127

c语言规定:若运算中同时有无符号和带符号整数,则按无符号整数运算

浮点数

规格化数

小数点前只有一位非零数

在计算机中,浮点数按如下格式存储

s位是符号位,正数是0负数是1

注意:规格化尾数的小数点总是1,不写进尾数M中

现在让我们举个例子,计算-12.75

首先12.75=1100.11;转化为科学计数法1.10011*2^3;阶数=3+127=130=1000 0010

尾数=100 1100 0000 0000 0000 0000;符号位为1

现在我们再来做一个题,反推

首先是负数;0111 1101是125,125-127=-2,指数为-2;根据尾数得1.11*2^-2;1.11又是1+0.5+0.25=1.75;所以最终的结果是1.75/4=0.4375

非规格化数

浮点数范围比定点数大,但数的个数没变多,故数之间更稀疏,且不均匀

说明浮点数不是能表示范围内的任意数!

当输入数据是一个不可表示数时,机器将其转换为最邻近的可表示数

在浮点数中所能表示的最小正数1*2^-126,尾数不能全为0

为什么是-126?这样可以使得出现比规格化数还小的数时程序也能继续下去

此时阶数-126,而尾数的隐藏数变为0

无穷数

在浮点数中阶数全为1并且尾数全为0则为无穷,如果尾数非零则是NaN

接下来,我们再来看计算机对于除数是0是怎么处理的:

计算机中除数为0的结果是 +/- ∞, 不是溢出异常.

这样可以将X/0>Y可作为有效比较

然而Sqrt (- 4.0) 以及0/0为NaN

阶数、尾数全为0,-0,+0表示不同

2.数据的存储

数据的基本宽度

存储器按字节编址,字节是最小可寻址单位 ,一般采用MSB(最高有效字节)

字与字长

字长:指数据通路的宽度

字:度量数据类型的宽度,16位(x86)

容量换算单位是1024,速度则是1000

大端:高地址存低字节

小端:高地址存高字节

譬如0x12345在小端机存储的方式

3.数据的运算

按位运算,逻辑运算与移位运算

按位运算

按位与:& 有零则零,两个都是1才是1,1与任何数字与都是那个数本身

按位或:|,有1就是1,两个都是0才是0

按位取反:~,1变0,0变1

按位异或:^,相同则为1,不同则为0

逻辑运算

&&,||,!,不做过多解释

移位运算

左移:<<,扩大两倍(可能会发生溢出)

右移:>>,缩小二分之一(可能有效数据丢失)

C语言中不区分是逻辑还是算术移位,编译器根据x的类型确定

扩展:短转长        无符号数:0扩展,前面补0;带符号整数:符号扩展,前面补符

截断:长转短       强行将高位丢弃,故可能发生“溢出”(没有规定编译器必须报错)

算术运算

  • ALUop:用来决定ALU所执行的处理功能。ALUop的位数k决定了操作的种类
  • OF:溢出标志,若A.B同号,但与Sum不同号,则1
  • SF:符号标志
  • ZF:零标志,sum为0,则为1
  • CF:进位/错位标志。当加法时,CF=1,表示加法有进位;减法时,CF=1,表示减法不够减
  • Sub:为1时做减法,为0时做加法
  • MUX:二路选择器

ZF,SF,CF,OF被称为条件标志,在运算电路中产生,被记录到专门的的寄存器中

重要认识

  • 计算机中所有算术运算都基于加法器实现!
  • 加法器不知道所运算的是带符号数还是无符号数。
  • 加法器不判定对错,总是取低n位作为结果,并生成标志信息

整数加法

无符号加溢出条件:CF=1

带符号加溢出条件:OF=1

整数减法

Unsigned: CF=0时,大于

Signed:OF=SF时,大于

整数乘法

高级语言中两个n位整数相乘得到的结果通常也是一个n位整数

无符号:若Puh=0,则不溢出

带符号:若Psh每位都等于Ps的最高位,则不溢出

编译器在处理变量与常数相乘时,往往以移位、加法和减法的组合运算来代替乘法运算

例如:对于表达式x*20,编译器可以利用20=16+4=24+22,将x*20转换为(x<<4)+(x<<2)

①无乘法指令>② 用ALU实现乘法指令>③用乘法器实现乘法指令

整数除法

对于带符号整数来说,n位整数除以n位整数,除-2^(n-1)/-1= 2^(n-1)会发生溢出外,其余情况(除数为0外)都不会发生溢出

正数商取比自身小的最接近整数,负数商取比自身大的最接近整数

编译器在处理一个变量与一个2的幂次形式的整数相除时,常采用右移运算来实现

注意:带符号负整数(天板):加偏移量(2^k-1),然后再右移k 位 ,低位截断

浮点数加减

首先要对阶,小阶向大阶对齐,还要考虑舍入

若运算结果尾数是0,则需要将阶码也置0

附加位

IEEE754规定: 中间结果须在右边加2个附加位

Guard (保护位):在significand右边的位  

Round (舍入位):在保护位右边的位;若没有舍入位,采用就近舍入到偶数

舍入方式:

01:舍;11:入 ;10:(强迫结果为偶数)

因此

  • int->float,不会发生溢出,但可能有数据被舍入
  • int,float->double,能保留精确值
  • double->float,int,可能发生溢出,此外,由于有效位数变少,故可能被舍入
  • float,double->int,因为int没有小数部分,所以数据可能会向0方向被截断

相关文章:

计算机系统基础(二)

1.数值数据的表示 为什么采用二进制&#xff1f; 二进制只有两种基本状态&#xff0c;两个物理器件就可以表示0和1二进制的编码、技术、运算规则都很简单0和1与逻辑命题的真假对应&#xff0c;方便通过逻辑门电路实现算术运算 数值数据表示的三要素 进位记数制&#xff08;十…...

vue根据文字长短展示跑马灯效果

介绍 为大家介绍一个我编写的vue组件 auto-marquee &#xff0c;他可以根据要展示文本是否超出展示区域&#xff0c;来判断是否使用跑马灯效果&#xff0c;效果图如下所示 假设要展示区域的宽度为500px&#xff0c;当要展示文本的长度小于500px时&#xff0c;只会展示文本&…...

leetcode-21-回溯-全排列及其去重

一、[46]全排列 给定一个 没有重复 数字的序列&#xff0c;返回其所有可能的全排列。 示例: 输入: [1,2,3]输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ] 其中&#xff0c;不需要使用startIndex used数组&#xff0c;其实就是记录此时path里都有哪些元素…...

如何根据两个关键字查询报错日志的位置

1、查找两个关键字&#xff08;无顺序要求&#xff09; 如果你不关心这两个关键字出现的顺序&#xff0c;你可以使用egrep&#xff08;等同于grep -E&#xff09;或grep的-E选项来启用扩展正则表达式&#xff0c;并使用管道&#xff08;|&#xff09;来组合两个搜索模式。 gr…...

短视频预算表:成都柏煜文化传媒有限公司

短视频预算表&#xff1a;精打细算&#xff0c;打造高质量视觉盛宴 在数字时代&#xff0c;短视频以其独特的魅力迅速占领了互联网内容的半壁江山&#xff0c;成为品牌宣传、文化传播乃至个人表达的重要载体。然而&#xff0c;每一个成功的短视频背后&#xff0c;都离不开一份…...

【Llama 2的使用方法】

Llama 2是Meta AI&#xff08;Facebook的母公司Meta的AI部门&#xff09;开发并开源的大型语言模型系列之一。Llama 2是在其前身Llama模型的基础上进行改进和扩展的&#xff0c;旨在提供更强大的自然语言处理能力和更广泛的应用场景。 以下是Llama 2的一些关键特性和更新点&am…...

mysql-sql-第十三周

学习目标&#xff1a; sql 学习内容&#xff1a; 37.查询各科成绩最高分、最低分和平均分&#xff1a; 以如下形式显示&#xff1a;课程 ID,课程 name,最高分,最低分,平均分,及格率,中等率,优良率,优秀率 及格为>60,中等为&#xff1a;70-80,优良为&#xff1a;80-90,优秀…...

【Android】ViewPage2嵌套Fragment+SeekBar横向滑动冲突

问题描述 ViewPage2嵌套FragmentSeekBar&#xff0c;拖动SeekBar的进度条时&#xff0c;触发ViewPage2的滑动。 解决方案&#xff1a; 方案一&#xff1a;通过事件总线ViewPage2的isUserInputEnabled属性 子Fragment&#xff1a; class SeekBarFragment : Fragment() {priv…...

【408考点之数据结构】图的遍历

图的遍历 图的遍历是指从图中的某个顶点出发&#xff0c;按照一定的规则访问图中所有顶点&#xff0c;并使每个顶点仅被访问一次。图的遍历包括两种主要方法&#xff1a;深度优先搜索&#xff08;DFS&#xff09;和广度优先搜索&#xff08;BFS&#xff09;。这两种遍历方法在…...

自动驾驶---Motion Planning之多段五次多项式

1 前言 在之前的博客系列文章中和读者朋友们聊过Apollo的 Motion Planning方案: 《自动驾驶---Motion Planning之LaneChange》 《自动驾驶---Motion Planning之Path Boundary》 《自动驾驶---Motion Planning之Speed Boundary》 《自动驾驶---Motion Planning之轨迹Path优化》…...

Linux基础IO操作详解

C文件IO相关接口 fopen函数 pathname: 要打开的文件名字符串mode: 访问文件的模式 模式描述含义“r”读文件不存在失败返回null“r”读写文件不存在打开失败返回null&#xff0c;文件存在则从头开始覆盖现有的数据&#xff08;不会清空数据&#xff09;“w”写文件不存在创建…...

轻松掌握:Hubstudio指纹浏览器如何接入IPXProxy代理IP

​代理IP对于保护个人和企业网络安全起到了至关重要的作用&#xff0c;然而在需要多个工作的时候&#xff0c;就需要搭配指纹浏览器来使用。其中Hubstudio指纹浏览器就可以模拟多个浏览器环境&#xff0c;然而有些用户不知道如何将Hubstudio和代理IP一起使用&#xff0c;下面以…...

React小记(五)_Hooks入门到进阶

React 16.8 版本 类组件 和 函数组件 两种组件共存&#xff0c;到目前 React 18 版本&#xff0c;官方已经不在推荐使用类组件&#xff0c;在函数组件中 hooks 是必不可少的&#xff0c;它允许我们函数组件像类组件一样可以使用组件的状态&#xff0c;并模拟组件的生命周期等一…...

使用工业自动化的功能块实现大语言模型应用

大语言模型无所不能&#xff1f; 以chatGPT为代表的大语言模型横空出世&#xff0c;在世界范围内掀起了一场AI革命。给人的感觉似乎大模型语言无所不能。它不仅能够生成文章&#xff0c;图片和视频&#xff0c;能够翻译文章&#xff0c;分析科学和医疗数据&#xff0c;甚至可以…...

PPT文件中,母版视图与修改权限的区别

在PPT&#xff08;PowerPoint&#xff09;制作过程中&#xff0c;母版视图和修改权限是两个重要的概念&#xff0c;它们各自在演示文稿的编辑、管理和分发中扮演着不同的角色。本文将从定义、功能、使用场景及区别等方面详细探讨PPT母版视图与修改权限的异同。 PPT母版视图 定…...

php简单的单例模式

本文由 ChatMoney团队出品 单例模式是一种常用的设计模式&#xff0c;它的核心思想是确保一个类只有一个实例&#xff0c;并提供一个全局访问点来获取这个实例。在 PHP 中实现单例模式通常有三种形式&#xff1a;饿汉式&#xff08;Eager&#xff09;、懒汉式&#xff08;Lazy&…...

【面试题】IPS(入侵防御系统)和IDS(入侵检测系统)的区别

IPS&#xff08;入侵防御系统&#xff09;和IDS&#xff08;入侵检测系统&#xff09;在网络安全领域扮演着不同的角色&#xff0c;它们之间的主要区别可以归纳如下&#xff1a; 功能差异&#xff1a; IPS&#xff1a;这是一种主动防护设备&#xff0c;不仅具备检测攻击的能力&…...

宠物博主亲测养宠好物安利,口碑好的狗毛空气净化器推荐

作为一名6年资深铲屎官&#xff0c;一到春季换季就开始各种疯狂打喷嚏、全身过敏红肿&#xff0c;这是因为宠物在换季的时候就疯狂掉毛&#xff0c;家里就想下雪一样&#xff0c;空气中都是宠物浮毛。而宠物毛上附带的细菌会跟随浮毛被人吸入人体&#xff0c;从而产生打喷嚏、过…...

常用工具类

计算当天开始时间和结束时间 DateTime date DateUtil.date(); String startDateStr DateUtil.formatDateTime(DateUtil.beginOfDay(date)); String endDateStr DateUtil.formatDateTime(DateUtil.beginOfDay(DateUtil.offsetDay(date,1))); params.put("startDate&quo…...

【数据库原理】总结(期末版)

题型关系范式题[数据库原理]关系范式总结&#xff08;自用&#xff09;-CSDN博客事务分析题[数据库原理]事务-CSDN博客Sql题 MySQL:MySQL基本语法 Oracle:Oracle基本语法 ​​​​​​ 关系代数[数据库原理]关系代数-CSDN博客 sql里面主要是考增删改查授权撤销权限等内容&#…...

端口聚合(Eth-Trunk)实验总结 —— 让两根网线“抱团”干活

企业场景&#xff1a;公司两栋楼之间只有两根网线相连&#xff0c;既要带宽加倍&#xff0c;又要一根线断了业务不中断。端口聚合就是让两根线“手拉手”变成一条逻辑链路&#xff0c;协同工作。&#x1f4cc; 实验拓扑&#xff08;两台交换机&#xff0c;两根网线互联&#xf…...

车载网络测试演进:从CAN总线到TSN与SOA的实战解析

1. 项目概述&#xff1a;一场关于“神经”与“体检”的进化史几年前&#xff0c;我和几个同行在路边摊就着麻小和扎啤&#xff0c;聊起车载以太网测试&#xff0c;那时它还是个新鲜玩意儿&#xff0c;大家讨论的焦点更多是“要不要做”和“怎么做”。几年过去&#xff0c;再回头…...

PHPExcel样式继承机制:减少代码冗余的终极指南

PHPExcel样式继承机制&#xff1a;减少代码冗余的终极指南 【免费下载链接】PHPExcel ARCHIVED 项目地址: https://gitcode.com/gh_mirrors/ph/PHPExcel 在处理Excel文件时&#xff0c;重复设置单元格样式不仅耗时还会导致代码臃肿。PHPExcel作为一款强大的PHP电子表格处…...

5G基站功率自适应算法突破

SummaryArticleObjectiveMethodComments统计机器翻译领域自适应综述解决统计机器翻译中训练数据和测试数据的领域分布不一致问题&#xff0c;提高翻译模型的性能和准确性基于数据选择的方法&#xff1a;选择和目标领域文本相似的源领域数据进行模型的训练。基于混合模型的方法&…...

DotNext内存映射文件:高性能IO操作的终极解决方案

DotNext内存映射文件&#xff1a;高性能IO操作的终极解决方案 【免费下载链接】dotNext Next generation API for .NET 项目地址: https://gitcode.com/gh_mirrors/do/dotNext DotNext作为下一代.NET API&#xff0c;提供了强大的内存映射文件功能&#xff0c;为开发者带…...

Java程序员必看:收藏这份2026大模型转型攻略,小白也能轻松入行高薪赛道!

Java程序员必看&#xff1a;收藏这份2026大模型转型攻略&#xff0c;小白也能轻松入行高薪赛道&#xff01; 随着大模型&#xff08;LLMs&#xff09;成为IT行业新质生产力的核心引擎&#xff0c;2026年国内大模型核心市场规模将突破700亿元&#xff0c;人才缺口达200万。本文专…...

紧急预警:Midjourney即将关闭--style raw参数入口!最后48小时掌握赛博朋克硬核写实风格迁移技巧

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;紧急预警&#xff1a;Midjourney即将关闭--style raw参数入口&#xff01;最后48小时掌握赛博朋克硬核写实风格迁移技巧 立即行动&#xff1a;锁定--style raw的最后窗口期 Midjourney v6.9 已悄然启动…...

别再重装系统了!Ubuntu 20.04 下 libsnark 零知识证明环境一次搭建成功的保姆级避坑指南

零知识证明开发实战&#xff1a;Ubuntu 20.04下libsnark环境高效搭建指南 在区块链和密码学领域&#xff0c;零知识证明技术正成为隐私保护的核心解决方案。作为最具代表性的开源库之一&#xff0c;libsnark因其高效的证明系统实现而被众多隐私项目采用。然而&#xff0c;许多开…...

别再死记硬背了!Vivado伪双口RAM的wea、ena信号到底怎么用?一个实例讲透

Vivado伪双口RAM控制信号实战指南&#xff1a;从原理到避坑 第一次接触Vivado的伪双口RAM时&#xff0c;那些密密麻麻的控制信号确实让人头疼。尤其是wea和ena这两个看似简单却暗藏玄机的信号&#xff0c;稍不注意就会导致数据读取异常或者意外覆盖。记得去年我在一个图像处理项…...

Win11内存完整性报错?手把手教你定位并安全移除不兼容驱动程序

1. 遇到Win11内存完整性警告怎么办&#xff1f; 最近很多升级到Windows 11的用户都遇到了一个让人头疼的问题——系统右下角突然弹出"内存完整性已关闭"的安全警告。这个黄色的小三角图标确实挺烦人的&#xff0c;特别是对于像我这样有点强迫症的用户来说。第一次看到…...