【软考中级备考笔记】数据的表示和校验码

news2025/1/18 20:25:24

2024/2/18 – 数据的表示和校验码 天气:阴雨

春节假期结束后第一个工作日,开始备考中级软件工程师。
希望在今年5月底的软考中取得中级证书
视频地址:https://www.bilibili.com/video/BV1Qc411G7fB

1. 计算机的总体架构

从下图中可以看出,计算机中包含了一下三个层次

  • 最底层的为计算机的硬件部分,对应的知识主要是计算机组成原理
  • 其次是操作系统这一个最大的系统软件,对应了操作系统这门课程
  • 在操作系统之上,是运行的各种应用软件,包含了各种不同的编程语言和数据结构
  • 而位于不同地区的计算机又通过计算机网络连接起来

最终构成了信息化世界。

在这里插入图片描述

2. 数据在计算机中的表示

2.1 进制转换

我们知道,任何数据在计算机中都是以二进制的形式表示的。因此我们需要了解不同进制之间是如何进行转换的。首先来看十进制:

在这里插入图片描述

实际上,根据十进制的规律,我们可以推广到任何其他的进制,下面是将任意进制转换到十进制的公式:

在这里插入图片描述

⚠️⚠️ 这里需要重点注意到是小数部分到进制转换是如何处理的。

下面是一些其他的例子:

在这里插入图片描述

🔔🔔 记住比较常用的2的几次方幂的结果,会极大的提高我们在进制转换时的效率

除了将任意进制转换为十进制意外,还有一些其他常用的进制转换。蔽日下面的二进制转换到八进制和十六进制:

在这里插入图片描述

二进制转换为八进制:

  • 以小数点为中心向两边进行扩充,每三位一组,不满三位的补0。得到的结果就是对应的八进制的数字

同理,二进制转换为十六进制:

  • 以小数点为中心向两边进行扩充,每四位一组,不满四位的补0。得到的结果就是对应的十六进制的数字
2.2 真值和机器数

这个概念相对陌生,实际上非常好理解

  • 真值就是我们平常说的数值
  • 机器数就是数值实际在计算机中存储的形式。数值在计算机中实际存储的形式主要有原码,反码,补码和移码。

此外,还有一个概念是定点数和浮点数

  • 定点数,小数点的位置是固定的,就是我们通常说的小数
  • 浮点数,小数点的位置不固定,和科学技术法非常类似

在这里插入图片描述

在这里插入图片描述

2.3 原码,反码,补码和移码
2.3.1 原码

首先来看原码,原码分为两部分:

  • 符号位:位于最高位。0表示正数,1表示负数
  • 数值位:表示数值的绝对值

在这里插入图片描述

以8位机器码为例,原码的取值范围是:

  • 最小1,1111111 = -127
  • 最大0,1111111 = 127

因此原码的取值范围为[-127,127]

2.3.2 反码

然后我们来看反码。反码的规则是若符号位为0,则反码和原码相同。若符号位为1,则数值位全部取反。因此对于正数而言,反码的原码相同。

在这里插入图片描述

以8位机器码为例,反码的取值范围是:

  • 最小1,1111111 = -127
  • 最大0,1111111 = 127

因此反码的取值范围为[-127,127]

2.3.3 补码

对于补码来说,正数的补码等于原码。而对于负数的补码,等于反码的末尾+1。

也可以直接从原码转换的补码,规则是原码除了符号位以外全部取反,末尾+1

对于补码来说,表示0的方式只有1种:

  • 对于+0,对应的补码为0,0000000
  • 对于-0,对应的原码为1,0000000,则对应的补码为1,1111111 + 1 = 100000000 溢出的数据不算,结果还是00000000

以8位机器码为例,补码的取值范围是:

因此补码的取值范围为[-128,127]

在这里插入图片描述

2.3.4 移码

移码的计算方法是补码的基础上符号位取反。

对于移码来说,可不是正数的原码和移码相同了!!!

在这里插入图片描述

因此移码的取值范围为[-128,127]

2.3.5 小节
  • 对于正数来说,原码,反码和补码均相同。但是移码不遵循这个规律
  • 从0的表示上来看:
    • 原码和反码,0均有两种表示方式
    • 补码和移码,0只有一种表示方式
  • 从取值范围上来看:
    • 原码和反码,[-127,127]
    • 补码和移码,[-128,127]
  • 几种码之间的转换图示如下:

在这里插入图片描述

在这里插入图片描述

3. 校验码

比较常用的校验法如下:

  • 水平奇偶校验码
  • 垂直奇偶校验码
  • 水平垂直奇偶校验码

在这里插入图片描述

比较常用的校验码是海明码,具体定义以及例题如下:

在这里插入图片描述

比较常见的还有CRC循环冗余校验法,视频里面没有提,后续根据例题看一看是否需要了解一下。

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

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

相关文章

【漏洞复现-通达OA】通达OA身份认证绕过漏洞

一、漏洞简介 通达OA(Office Anywhere网络智能办公系统)是中国通达公司的一套协同办公自动化软件。通达OA 2013-通达OA2017存在一个认证绕过漏洞,利用该漏洞可以实现任意用户登录。攻击者可以通过构造恶意攻击代码,成功登录系统管理员账户,继而在系统后台上传恶意文件控制…

论UI的糟糕设计:以百度网盘为例

上面这一排鼠标一经过就会弹出来(不是点才弹出来),然后挡住你的各种操作, 弹出来时你就必须等它消失,卡一下才能操作。 在用户顺畅地操作内容时,经常就卡一下、卡一下、卡一下…… 1、比如鼠标从下到上&am…

【点云】生成有凹凸的平面

文章目录 前言高斯函数原理代码保存 测试测试1 :领域曲率代码测试2:高斯曲率代码 加上噪点测试1测试2改进 前言 尝试用一些数据生成有凹凸面的点云。 我们姑且把z轴当成有凹凸的缺陷,x轴和y轴共同组成一个平面。 高斯函数 原理 高斯函数wi…

搭建游戏服务器需要高防御的服务器吗?

随着网络技术的不断发展,游戏行业也迎来了前所未有的发展机遇。然而随着游戏用户的不断增加,游戏服务器的安全问题也日益突出。一些攻击者可能会对游戏服务器进行攻击,例如DDoS攻击、CC攻击等,导致服务器无法正常运行,…

在Mac上搭建MongoDB环境

最近工作中需要装MongoDB环境,搭建过程中遇到了一些问题,在这里记录一下安装MongoDB环境的方法以及问题的解决方法。有两种安装MongoDB的方法:brew安装和手动安装。 目录 使用Homebrew安装MongoDB 手动安装MongoDB(不使用Homebr…

嵌入式第十七天!(文件IO)

文件IO: 标准IO和文件IO的区别: 1. 标准IO是库函数,是对系统调用的封装 2. 文件IO是系统调用,是Linux内核中的函数接口 3. 标准IO是有缓存的 4. 文件IO是没有缓存的 1. 操作步骤: 打开 -> 读/写 -> 关闭 2. 打开…

PyCharm - Script parameters (脚本参数)

PyCharm - Script parameters [脚本参数] References Run -> Edit Configurations… -> Run/Debug Configurations -> Configuration -> Script parameters 命令行: python display_yolo_log.py ./person_training_log/person_train_log_DIMM40_stdout…

Github 2024-02-12 开源项目日报 Top10

根据Github Trendings的统计,今日(2024-02-12统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Rust项目3Python项目3JavaScript项目1TypeScript项目1C项目1C项目1PowerShell项目1非开发语言项目1 SubQuery…

NoSQL 数据库有哪些类型?

NoSQL 数据库主要可以分为下面四种类型: 键值:键值数据库是一种较简单的数据库,其中每个项目都包含键和值。这是极为灵活的 NoSQL 数据库类型,因为应用可以完全控制 value 字段中存储的内容,没有任何限制。Redis 和 D…

[AIGC] 利用 chatgpt 深入理解 Java 虚拟机(JVM)

Java 虚拟机(JVM)是 Java 编程语言的核心运行环境,它负责解释和执行 Java 字节码。它是 Java 程序能够跨平台运行的关键,因为不同的操作系统和硬件平台都有自己的指令集和体系结构,而 JVM 则提供了一个统一的运行环境&…

springsecurity记住我登录时访问无权限接口,跳转登录界面

贴一下springsecurity无权限时异常处理的逻辑 未登录状态:如果用户尝试访问需要认证的资源但未登录,即未经过认证,在这种情况下应该跳转到登录页面或者返回登录提示,让用户进行身份验证。通过调用 AuthenticationEntryPoint 可以统…

BufferedImage 这个类在jdk17中使用哪个import导入

在Java开发中,BufferedImage 类是用于处理图像数据的一个类。在JDK 17中,BufferedImage 类属于 java.awt.image 包。因此,要在你的Java程序中使用 BufferedImage 类,你需要通过以下方式导入该类: import java.awt.ima…

鸿蒙-基于ArkTS声明式开发的简易备忘录,适合新人学习,可用于大作业

本文地址:https://blog.csdn.net/qq_40785165/article/details/136161182?spm1001.2014.3001.5502,转载请附上此链接 大家好,我是小黑,一个还没秃头的程序员~~~ 不知不觉已经有很长一段时间没有分享过自己写的东西了&#xff0…

MQTT协议-ISO标准下基于发布/订阅范式的消息协议

MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在 TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议,为此,它需要一个消息中间件 。 MQTT是一个…

【力扣 - 环形链表】

题目描述 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置&a…

5 个免费的数字取证工具可促进您的调查

数字取证在分析和解决网络攻击方面发挥着至关重要的作用,也是事件响应的关键组成部分。此外,数字取证还可以在攻击发生后为审计人员、法律团队和执法机构提供重要信息。 市场上有许多尖端的数字取证工具,但对于那些买不起的人来说&#xff0…

centos7.9如何关闭系统的自动更新功能

要关闭 CentOS 7.9 的自动更新功能,你需要禁用并停止 yum-cron 服务。以下是具体步骤: 停止 yum-cron 服务: 你需要首先停止正在运行的 yum-cron 服务。 systemctl stop yum-cron禁用 yum-cron 服务: 停止服务后,确保它…

【日常聊聊】深度学习进度

🍎个人博客:个人主页 🏆个人专栏:日常聊聊 ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 方向一:深度学习的基本原理和算法 方向二:深度学习的应用实例 方向三:深度学习的挑战和未…

生成式 AI - Diffusion 模型的数学原理(4)

来自 论文《 Denoising Diffusion Probabilistic Model》(DDPM) 论文链接: https://arxiv.org/abs/2006.11239 Hung-yi Lee 课件整理 文章目录 一、 q ( x t ∣ x t − 1 ) q(x_{t} \mid x_{t-1} &#xff…

LabVIEW轨道交通列车牵引制动试验平台

LabVIEW轨道交通列车牵引制动试验平台 概述 面对城市轨道交通领域对于高效、准确牵引制动系统的迫切需求,开发了一套基于LabVIEW软件与硬件相结合的试验平台。该平台模拟列车的牵引、制动等工况,通过高精度的数据采集与实时图形化展示,提升…