计算机系统基础知识:数据表示及运算

news2024/9/23 0:42:59

计算机系统基础知识

  • 1. 计算机系统基本组成
  • 2. 数据表示及运算
    • 2.1 数据表示
      • 进位计数值及其转换
      • 机器数和码制
      • 定点数和浮点数
      • 十进制编码
      • ASCII码
      • 汉字编码
      • Unicode
    • 2.2 校验码
    • 2.3 逻辑代数及运算
    • 2.4 机器数的运算
      • 机器数的加减运算
      • 机器数的乘除运算
      • 浮点运算

1. 计算机系统基本组成

计算机系统由硬件和软件组成,通过运行程序来协同工作。计算机硬件是物理装置,计算机软件是程序、数据和相关文档的集合。
在这里插入图片描述

  • 计算机硬件
    由**运算器、控制器、存储器、输入设备(把数据输入计算机)和输出设备(把计算机中数据展示出来)**组成。
    运算器和控制器及其相关部件集成在一起,统称为中央处理器(Central Processing Unit,CPU).CPU是硬件核心,用于数据的加工处理、能完成各种运算和控制功能。
    • 运算器:对数据进行加工处理的部件,主要完成算术和逻辑运算。
    • 控制器:从主存中取出指令并进行分析,控制计算机各个部件有条不紊的完成指令的功能。
    • 存储器:分为内存和外存。
    • 主机:CPU 和存储器的有机组合。
  • 计算机软件
    计算机软件为管理、运行、维护及应用计算机系统所开发的程序和相关文档的集合。
    • 系统软件:管理系统的硬件和软件资源;
    • 中间件:独立的系统软件或服务程序,常用于管理计算资源和网络通信,提供通信处理、数据存取、事务处理、Web服务、安全、跨平台等服务;
    • 应用软件:用于解决领域的具体问题。
  • 计算机分类:个人移动设备、桌面设备、服务器、集群/仓库级计算机、超级计算机和嵌入式计算机。

2. 数据表示及运算

2.1 数据表示

进位计数值及其转换

  1. 二进制、八进制、十进制和十六进制的表示:
计数制基数符号形式表示符示例
十进制100-9D123, 456, 789
二进制20, 1B1010, 1101, 0011
八进制80-7O123, 567, 450
十六进制160-9, A-FH1A3, 4F5, 6ED
  1. 十进制与二进制之间转换
    十进制整数转换为二进制整数方法是“除2取余”,十进制小数转换为二进制小数方法是“乘2取整”。
    二进制转十进制的方法是:将二进制的每一位数乘以它的权,然后相加。
    NOTE:八进制和十六进制转与十进制之间转化类似。
  2. 二进制、八进制和十六进制之间对应关系
二进制数八进制数十六进制数
000000
000111
001022
001133
010044
010155
011066
011177
1000108
1001119
101012A
101113B
110014C
110115D
111016E
111117F

机器数和码制

机器数:数据在计算机中的表示,采用二进制计数制,数的符号用0、1表示,小数点隐含表示而不占位置。机器数的最高位表示正、负符号位,其余位则表示数值。

  1. 原码
    原码是最简单的表示方式,包括符号位和数值位。符号位位于最高位,用0表示正数,用1表示负数,其余位表示数值的大小。
    正数:其原码就是其二进制本身。
    负数:其原码是符号位为1,数值部分取该数绝对值的二进制。

  2. 反码
    反码也是包括符号位和数值位的一种表示方式。对于正数,其反码与原码相同;对于负数,其反码是符号位为1,其余位是原码取反。
    正数:反码与原码相同。
    负数:反码是符号位不变,其余位取反。

  3. 补码
    补码是在反码的基础上形成的,也是目前计算机中最常用的数值表示方式。对于正数,其补码与原码和反码相同;对于负数,其补码是符号位为1,其余位是原码取反后加1。
    正数:补码与原码和反码相同。
    负数:补码是符号位为1,其余位是原码取反后加1。
    补码的优势在于能够表示更多的数值,特别是可以表示-128(在8位二进制中),并解决了0的符号表示问题。此外,补码还允许计算机中的加法和减法运算使用相同的硬件电路。

  4. 移码
    移码(又称增码或偏置码)通常用于表示浮点数的阶码。其表示形式与补码相似,但符号位相反,即用1表示正数,用0表示负数,数值部分与补码相同。
    正数:移码的最高位(符号位)为1,其余位与补码相同。
    负数:移码的最高位(符号位)为0,其余位是补码取反(实际上因为数值部分与补码相同,所以这部分不变,只是符号位取反)。
    移码主要用于浮点数的阶码表示,以简化浮点数的比较和排序操作。

定点数和浮点数

  1. 定点数(Fixed-Point Number)
    定点数是一种表示固定小数位数的数值类型。它通常表示为一个有符号的整数部分和一个小数部分,小数点的位置是固定的。定点数既可以用于表示整数,也可以用于表示小数。但在固定位数下,小数点的位置是预先设定的,因此其表示的数值范围和精度是有限的。
    在这里插入图片描述

  2. 浮点数
    浮点数是一种小数点位置不固定的数,能够表示更大范围的数值。
    浮点数采用类似科学计数法的表示方法,即一个数N可以表示为N = M × b^E的形式,其中M是尾数(mantissa),b是基数(通常为2),E是指数(exponent)。
    精度可变:浮点数的精度可以随着数值的大小而改变,能够表示很大或很小的数值,但在表示小数时可能存在精度损失。
    表示范围广泛:浮点数可以表示比定点数更大范围的数值。
    运算复杂:浮点数的运算比定点数复杂,因为需要处理阶码和尾数的运算。
    内存占用:浮点数通常需要更多的内存空间来存储,因为需要额外的位来表示指数和尾数。

  3. 工业标准IEEE 754
    IEEE 754标准定义了浮点数的格式,包括符号位(sign bit)、指数位(exponent bits)和尾数位(mantissa bits)。符号位位于最高位,用于表示浮点数的正负。指数位用于表示浮点数的规模,是一个有偏指数(biased exponent),通过加上一个固定偏置来进行编码。尾数位也称为分数位或有效数字位,用于表示浮点数的精度。
    在这里插入图片描述

十进制编码

余3码:在8421码的基础上,把每个数的代码加上0011后构成。
格雷码:相邻的两个代码之间只有一位不同。
在这里插入图片描述

ASCII码

在这里插入图片描述

汉字编码

汉字编码是汉字标准规范中的一个专门术语,是指通用规范汉字表中的汉字顺序码。其目的是为了解决汉字如何输入计算机的问题,因为电子计算机现有的输入键盘与英文打字机键盘完全兼容,无法直接输入非拉丁字母的文字(包括汉字)。
汉字编码根据应用目的的不同,主要分为外码、交换码、机内码和字形码等。其中,外码也叫输入码,是用来将汉字输入到计算机中的一组键盘符号,如拼音码、五笔字型码、自然码等。

  • 常见的汉字编码标准(内部码)
    1. GB2312:中国最早的汉字编码标准之一,由国家标准总局发布,1981年5月1日实施。它包含了基本的汉字、符号、数字等共7445个字符,主要用于简体中文字符的处理和表示,广泛应用于计算机系统、通信设备等领域。
    2. GBK:GB2312的扩展版本,包含了更多的汉字、符号、数字等,共收录了21886个字符,可以表示繁体中文和日文汉字等其他字符,因此在大陆地区和香港地区都有广泛的应用。
    3. GB18030:中国国家标准局于2000年发布的新一代中文编码标准,包含了GB2312和GBK编码中的所有字符,以及繁体中文、日文汉字、朝鲜语等字符,共收录了27484个字符。
    4. UTF-8:一种可变长度的Unicode编码方式,可以表示Unicode字符集中的任意字符,包括中文字符。UTF-8编码不仅可以用于中文字符的处理和表示,还可以表示其他语言的字符,因此在国际化应用中得到了广泛的应用。
    5. Big5:一种汉字编码方式,主要用于繁体中文的处理和表示,是台湾地区广泛使用的汉字编码方式之一。
  • 字形码:表示汉字字形的字模数据,通常用点阵、矢量函数等方式显示。

Unicode

Unicode是一种字符编码标准,用于将字符集中的每一个字符分配一个唯一的数字(代码点),以便在计算机系统中进行存储、处理和交换。Unicode包含了世界上几乎所有语言所需的字母、数字、标点符号和符号,被广泛应用于各种操作系统、编程语言和技术标准中。(可扩充
**背景:**随着计算机技术的快速发展,不同国家和地区之间的信息交流日益频繁,传统的字符编码方案(如ASCII、GB2312、Big5等)已经无法满足需求。为此,国际标准化组织(ISO)开始着手制定一种统一的字符编码标准,即Unicode。

  • Unicode字符的编码方式一般有三种:UTF-8、UTF-16、UTF-3234。
  1. UTF-8:一种可变长度的Unicode编码方式,每个字符可能占用1到4个字节。UTF-8编码具有节省空间、兼容ASCII编码等优点,因此在互联网和文件系统中得到了广泛应用。
  2. UTF-16:一种定长编码方案,用于在字处理器、文本编辑器和Windows操作系统中表示Unicode字符。UTF-16编码对于大部分常用字符(如英文字符和常用中文字符)非常高效,但对于一些特殊字符(如表情符号)则需要使用两个16位编码单元(即4个字节)来表示。
  3. UTF-32:一种定长编码方案,用于在程序中存储和处理Unicode字符。UTF-32编码对每个字符都使用4个字节来保存,虽然编码简单,但会造成空间的极大浪费。

2.2 校验码

校验码(Check Code或Error Detection Code)是一种附加在数据末尾的冗余信息,用于检测或纠正数据传输或存储过程中产生的错误。其主要功能是确保数据的完整性和正确性,防止由于噪声、干扰或其他原因导致的数据错误。

  • 校验码的原理通常包括以下几种方式:
  1. 奇偶校验:通过添加一个额外的位(0或1),使得数据中1的总数为奇数(奇校验)或偶数(偶校验)。奇偶校验位可以检测单个位的错误。
  2. 循环冗余校验(CRC):通过将数据视为一个大的多项式,并将其除以一个固定的“生成多项式”,得到的余数作为CRC校验码。CRC能够检测到多位错误,并具有较高的错误检测能力。
  3. 校验和:将数据分成固定大小的段,然后将这些段相加(有时还会进行其他操作),最后可能对结果取反或进行其他处理以生成校验和。校验和能够检测数据中的错误,但其错误检测能力不如CRC。
  4. 海明码:一种错误纠正码,通过在数据中添加冗余位,不仅可以检测错误,还能确定错误的位置并进行纠正。

2.3 逻辑代数及运算

  • 逻辑运算:与.、或+、非-、异或。
  • 逻辑公式
    在这里插入图片描述

2.4 机器数的运算

机器数的加减运算

Note:计算机内部通常只设置加法器,减法运算转化为加法运算进行。

  • 原码加减法
    加法:相同符号的原码相加,数值部分直接相加,运算结果与两个加数的符号相同。
    减法:先比较两个数绝对值的大小,然后用绝对值大者的绝对值减去绝对值小者的绝对值,结果的符号取绝对值大者的符号。
  • 补码加减法
    在这里插入图片描述
    补码加减法的规则如下:
  1. 参加运算的操作数用补码表示;
  2. 符号位参加运算;
  3. 若进行相加运算,则两个数的补码直接相加;若进行相减运算,则将减数连同其符号位一起变反后加1后与被减数相加。
  4. 运算结果用补码表示。

与原码减运算相比,补码减运算的过程要简便很多。在补码加减运算中,符号位和数值位一样参加运算,无需做特殊处理。因此多数计算机都采用补码加减法运算法。

  • 溢出及判定
    两个同符号的数相加,或者相异符号数相减,运算结果有可能溢出。
    溢出检测机制:进位判决法和双符号判决法。

机器数的乘除运算

纯软件方案;
硬件方案;
设置专用的硬件阵列乘法器或除法器。

浮点运算

浮点运算的步骤
浮点数的加减运算通常包括以下几个步骤:

  1. 对阶:使两个操作数的阶码相同,以便进行尾数的加减运算。
  2. 尾数加减:将两个操作数的尾数进行加减运算。
  3. 规格化:将尾数加减的结果进行规格化处理,以满足IEEE 754标准对尾数的要求。
  4. 舍入:对尾数进行舍入处理,以减小舍入误差。
  5. 溢出判断:判断运算结果是否溢出,并进行相应的处理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2034268.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

opencv-python图像增强二:图像去雾(暗通道去雾)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、简介:二、暗通道去雾方案简述:三、算法实现步骤3.1最小值滤波3.2 引导滤波3.3 计算图像全局光强 四:整体代码实现五&#xf…

iLight混合点光源 激光与LED技术的结合

51camera机器视觉产品资料查询平台的光源种类比较丰富,今天我们一起来看看其合作厂商iCore的明星产品iLight混合点光源,该产品提供了比LED更高的亮度,作为传统LED和氙气灯的替代品,它将激光和LED技术的结合,提供了长达…

创建vscode debug环境

c语言或者其他语言在 字符串指针使用细节很多,你不能编译整个镜像下载在设备里来调试。这些在一个.c文件里需要验证的细节,可以在vscode里创建一个main函数调试 1,环境创建 主要参考下面链接: 如何在VScode中让printf输出中文…

【项目】基于Vue2+Router+Vant 前端面经项目

环境配置 Vue脚手架的创建 在终端中打开输入 vue create 项目包名 -m npm注意⚠️:项目名称不再允许包含大写字母。 选择第三项 3.选择要安装的模块 从上到下的功能模块: Babel - ES:降级处理Router-Vue:路由插件CSS预处理器E…

基于STM32开发的智能家居照明控制系统

目录 引言环境准备工作 硬件准备软件安装与配置系统设计 系统架构硬件连接代码实现 初始化代码控制代码应用场景 家庭照明自动化节能照明管理常见问题及解决方案 常见问题解决方案结论 1. 引言 智能家居照明控制系统通过整合各种传感器和控制器,能够实现对家居照…

[全文]买椟还珠和坏事变好事?《分析模式》漫谈19

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 “Analysis Patterns”的第一章有这么一句: Modeling in a programming language also presents the danger of tying the models to that language. The model may use f…

pythonUI自动化008::allure测试报告(安装及应用)

allure报告预览 1 下载jdk,配置jdk Path变量: https://www.cnblogs.com/FBGG/p/15103119.html(这里不作阐述,请看该偏文章配置即可) 2 下载allure驱动,配置allure Path变量: 下载allure驱动&a…

Springboot 开发之 Quartz 任务调度框架简介

引言 Quartz Scheduler是一个功能丰富的开源作业调度库,它允许开发人员以灵活的方式创建和管理定时任务。以下是对Quartz Scheduler的详细解析: 官网地址:https://www.quartz-scheduler.org/w3cschool 官方文档:https://www.w3c…

离子交换技术:助力电池材料纯度提升的环保解决方案

在新能源技术迅猛发展的今天,电池正极材料的生产和性能成为了科研与工业界的关注焦点。特别是锂离子电池,其广泛运用于电动汽车和各类便携式电子设备中,对电池性能的要求日益严苛。电池正极材料中的球形氢氧化镍直接影响着电池的充放电效率、…

PhotoShop - 初级抠图

1. 调整边缘 1.1 快速选择工具 使用快速选择工具,photoshop会智能的去识别图像中的边缘部分并以此选区 1.2 参数调整 使用快速选择工具选区之后,实际上很多边缘部分是识别不明确的,所以我们需要进一步调节参数使得选区中的边缘识别更加明…

区分恶意加密货币地址:基于西里尔字母伪装的安全隐患分析

引言 在当前的网络环境中,安全威胁变得越来越复杂,特别是在涉及加密货币交易时,攻击者常常利用各种手段来欺骗用户。最近,研究人员发现了一种利用西里尔字母(Cyrillic alphabet)伪装的恶意手法&#xff0c…

前端学习笔记-JS篇-03

循环for语句 for 是JavaScript提供的另一种循环控制的话句,它和 while只是语法上存在差异。 for循环基本使用 作用:重复执行代码 好处:把声明起始值、循环条件、变化值写到一起,让人一目了然,它是最常使用的循环形式 for(变量起始值;终止…

猫头虎 分享已解决Bug || TypeError: Cannot read property ‘map‘ of undefined 解决方案

🐯 猫头虎 分享已解决Bug || TypeError: Cannot read property map of undefined 解决方案 摘要: 今天猫头虎带大家深入探讨在前端开发中常见的一个令人头疼的问题:TypeError: Cannot read property map of undefined。这个错误通常出现在我…

【Python机器学习】树回归——树回归与标准回归的比较

模型树、回归树和一般的回归方法,为了测试哪个模型最好,可以设计一些函数,它们可以在树构建好的情况下对给定的输入进行预测,之后利用那个这些函数来计算三种回归模型的测试误差。这些模型将在某个数据上进行测试,该数…

DC系列靶场---DC 9靶场的渗透测试

信息收集 地址探测 使用arp-scan 对目标主机做地址探测 arp-scan -l -I eth0 目标主机IP地址为172.30,1,134 端口扫描 使用nmap对目标主机做端口扫描 nmap -sS -sV -T4 -p- -O 172.30.1.134 目标主机开放了80端口,但是22端口是过滤。这个22端口应该是关闭的&a…

95% 向量资源节省,火山引擎云搜索 RAG 技术体系演进

采访嘉宾 | 火山引擎云搜索团队 鲁蕴铖、李杰辉、余炜强 编辑 | Tina InfoQ 2023 年,大模型惊艳了世界。2024 年,RAG 技术如日中天。 RAG 使得大模型能够在不更新模型参数的情况下,获得必要的上下文信息,从而减少大模型的幻觉。…

pytorch,用lenet5识别cifar10数据集(训练+测试+单张图片识别)

目录 LeNet-5 LeNet-5 结构 CIFAR-10 pytorch实现 lenet模型 训练模型 1.导入数据 2.训练模型 3.测试模型 测试单张图片 代码 运行结果 LeNet-5 LeNet-5 是由 Yann LeCun 等人在 1998 年提出的一种经典卷积神经网络(CNN)模型,主要…

dos命令获取java进程的pid并停止 bat脚本 第二篇

最近要做一个java程序一键重启的功能,主要思路是用批处理命令先将java程序停止,然后重新启动,研究了一把dos命令, taskkill /?取得帮助, taskkill /FI是筛选器: 然后很happy的写好停止脚本如下: taskkill /f /fi "IMAGENAME eq javaw.exe"是不是这样就行了…

spring中使用到的设计模式有哪些

Spring 框架是一个高度模块化和灵活的框架,广泛使用了各种设计模式来实现其核心功能和架构。这些设计模式帮助 Spring 提供了高可配置性、可扩展性和可维护性。以下是 Spring 框架中使用到的一些关键设计模式:

linux 安装jdk步骤

建议用免安装版的,安装方法如下: 一、软件下载 查看系统多少位 getconf LONG_BIT 下载JDK(下面分别是32位系统和64位系统下的版本) # 32位 http://download.oracle.com/otn-pub/java/jdk/7u9-b05/jdk-7u9-linux-i586.tar.gz?…