计算机基础(6)——编码与解码-二进制与文本

💗计算机基础系列文章💗

  • 👉🍀计算机基础(1)——计算机的发展史🍀
  • 👉🍀计算机基础(2)——冯诺依曼体系结构🍀
  • 👉🍀计算机基础(3)——计算机的系统组成🍀
  • 👉🍀计算机基础(4)——操作系统概述🍀
  • 👉🍀计算机基础(5)——进制与进制转换🍀
  • 👉🍀计算机基础(6)——编码与解码🍀
  • 👉🍀计算机基础(7)——数字图像技术🍀
  • 👉🍀计算机基础(8)——音频数字化(模电与数电)🍀
  • 👉🍀计算机基础(9)——原码、补码、反码🍀
  • 👉🍀计算机基础(10)——编程语言与跨平台🍀

我们都知道计算机底层采用的是二进制码,即计算机底层存储的全都是0和1,不管是我们看到的视频、图片、音乐、文档和其他任何存储在电脑上的文件,其底层都是0,1,那么为什么要采用0和1来进行存储呢?这些0和1在计算机底层又是如何存储的呢?0和1又是如何变成我们需要的文件呢?

CPU的计算

我们知道计算机底层都是靠CPU来进行运算的,CPU的发展经历了如下几个过程,如图所示:

也就是说CPU最原先是通过二极管发展而来,我们可以把这些二极管看做是一个一个的开关,这些开关只有两个状态:通(1)、断(0),那么1个二极管能够表示几种状态呢?很明显就两种,0和1。

2个二极管可表示4个状态:

00,01,10,11

3个二极管可表示8个状态:

000,001,010,011,100,101,110,111

4个二极管就可表示16个状态,5个表示32个状态,6表示64个状态…一个CPU拥有的晶体管越多,电流在一个时间单位上流动的分支越多,从宏观上讲,可以在CPU上处理的数据越多,机器就越快。目前CPU都集成了超大规模的集成电路,多大呢?早在2012年Intel发布的Core i7处理器的芯片集成度达到了14亿个晶体管,数据计算能力可想而知。

就简单而言,这些晶体管就是微型的电子开关,它们是构建CPU的基石。当计算机从内存中读取到指令后(0、1),将其转换为电信号,1则表示高电频,0则表示低电频,通过一些与门,或门,与或门等逻辑控制电路。而计算机内部有超大规模的集成电路,也就可以接受非常庞大规模的数据进行计算,把处理好的数据通过同样的方式将这些信号进行转换写进内存、然后再写出磁盘、麦克风、显示器等外部设备。

Tips:计算机相关的硬件设备(以及各项电子设备)的工作原理涉及到电路、模拟信号、数字信号、计算机组成原理等诸多计算机/电子信息等专业课程,不在本书研究范围内,大家有兴趣可以自行查看相关书籍的内容来了解这部分知识。到目前为止,我们只需要大致了解到CPU内部是一块超大规模的集成电路板(虽然远不止这么简单),并且能进行计算即可。

那么计算机中存储的二进制是如何转变为我们看到的内容呢?

这中间就存在一个编码与解码的过程,其实我们在计算机中打开任何的一个文件、应用程序、游戏等其实都可以看做是一个解码的过程,只不过对应的解析器不同罢了。

1.4.2 文本的编码与解码

以最普通的文本为例,我们跟计算机双方约定好当在键盘上输入一个字母A时,保存到电脑上的内容就为0100 0001,当我们在电脑上输入一个字母B时,电脑底层存储的就是0100 0010,越来越多的信息需要通过编码存储到计算机内,因此编码表这个概念就出来了,世界上的一些权威组织就开始着手于编码的制作,有了编码表我们就能够使用0和1来代表世间上的万物了。编码表就相当于一个翻译官,充当人类与计算机之间的一个翻译官。

当我们打开计算机中的记事本输入内容后保存到文件时,过程如图所示:

当我们打开计算机中的记事本查看文件中的内容时,过程如图所示:

市面上有非常多的编码表,每个表码表的编码内容以及规则是不一样的,因此我们存储到计算机时采用的编码表应该与我们取出数据解码时的编码表一致。

目前计算机中用得最广泛的字符集及其编码,是由美国国家标准局(ANSI)制定的ASCII码(American Standard Code for Information Interchange,美国标准信息交换码),它已被国际标准化组织(ISO)定为国际标准,称为ISO 646标准。适用于所有拉丁文字字母,ASCII码有7位码和8位码两种形式。

  • 标准ASCII码:标准ASCII码也叫基础ASCII码,使用7位二进制数来表示所有的大写和小写字母,数字0到9、标点符号,以及在美式英语中使用的特殊控制字符等。7位可以表示128种状态,每种状态都唯一地编为一个7位的二进制码,对应一个字符(或控制码),这些码可以排列成一个十进制序号0~127,所以在7位二进制码种,最多可以表示128个字符。
  • 扩展ASCII码:扩展ASCII 字符是从128到255(0x80-0xff)的字符。许多基于x86的系统都支持使用扩展ASCII。它将每个字符的第8位用于确定附加的128个特殊符号字符、外来语字母和图形符号。针对扩展的ASCII码,不同的国家有不同的字符集,所以它并不是国际标准。

ASCII第一次以规范标准的型态发表是在1967年,最后一次更新则是在1986年,至今为止共定义了128个字符(标准ASCII码),当初的设计并没有考虑欧洲那些扩展的拉丁字母,也没有考虑韩语和日语和中文汉字等。因此各个国家开始着手制定自己的字符编码,例如 ISO/IEC 8859(欧洲字符集)、shift_Jis(日语字符集)、GBK(中文字符集)等。

一般的外国人用的数字和字母有限,根据ASCII表来编码,1个字节可以表示完全。我们中国人大部分用的是汉字,所以引入了GB2312编码表,国标(6000多个汉字),一个汉字用2个字节表示。随后又扩展了GBK,扩展编码,能够达到几万个汉字。例如在ASCII编码表中,“65(十进制)”代表字母“A”,在GBK编码表中“CED2(十六进制)”代表中文汉字“我”。

下表是标准ASCII编码表中规范的部分字符内容:

二进制十进制字符
0100 000165A
0100 001066B
0100 001167C
0100 010068D
0100 010169E
0100 011070F
0100 011171G

下表是GBK编码表中规范的部分字符内容:

二进制十六进制字符
10110100 11110011B4F3
10111100 11010010BCD2
10111010 11000011BAC3

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

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

相关文章

Rust 程序设计语言学习——泛型、Trait和生命周期

每一种编程语言都有高效处理重复概念的工具。在 Rust 中其工具之一就是泛型。泛型是具体类型或其他属性的抽象替代。 Trait 定义了某个特定类型拥有可能与其他类型共享的功能。可以通过 Trait 以一种抽象的方式定义共同行为。可以使用 trait bounds 指定泛型是任何拥有特定行为…

Mac excel 同时冻结首行和首列

1. 选择B2窗格 2. 选择视图 3. 选择冻结窗格 最后首行和首列的分割线加粗了就表示成功了

youlai-boot项目的学习(3) 本地redis、MinIO的安装与配置

youlai-boot项目除了使用mysql数据库、还有redis,以及OSS服务,OSS除了云OSS服务,还有自部署的MinIO服务。 前面我们已经安装好了mysql数据库,那么我们来看看本地redis、MinIO服务怎么部署 环境 mac OS, iterm2&#…

C语言力扣刷题8——环形链表——[快慢双指针, 龟兔赛跑]

力扣刷题8——环形链表——[快慢双指针, 龟兔赛跑] 一、博客声明二、题目描述三、解题思路1、思路说明 四、解题代码(附注释) 一、博客声明 找工作逃不过刷题,为了更好的督促自己学习以及理解力扣大佬们的解题思路,开辟这个系列来…

拳打开源SOTA脚踢商业闭源的LI-DiT是怎样炼成的?(商汤/MMLab/上海AI Lab)

文章地址:https://arxiv.org/pdf/2406.11831 仅基于解码器的 Transformer 的大语言模型(LLMs)与 CLIP 和 T5 系列模型相比,已经展示出卓越的文本理解能力。然而,在文本到图像扩散模型中利用当前先进的大语言模型的范例…

中霖教育怎么样?注册会计师考试难吗?

中霖教育:注册会计师(CPA)考试的难度高吗? 对于不同背景的考生来说,注册会计师考试的挑战程度不同。那些有良好基础和充裕准备时间的考生,通过考试的可能性要超过那些从零开始且准备时间有限的人。 据最近…

GPOPS-II教程(5): 月球探测器着陆最优控制问题

文章目录 问题描述GPOPS代码main functioncontinuous functionendpoint function仿真结果 最后 问题描述 参考文献:[1] Meditch J. On the problem of optimal thrust programming for a lunar soft landing[J]. IEEE Transactions on Automatic Control, 1964, 9(4…

Linux基础- 使用 Apache 服务部署静态网站

目录 零. 简介 一. linux安装Apache 二. 创建网页 三. window访问 修改了一下默认端口 到 8080 零. 简介 Apache 是世界使用排名第一的 Web 服务器软件。 它具有以下一些显著特点和优势: 开源免费:可以免费使用和修改,拥有庞大的社区支…

Web渗透:任意文件下载

任意文件下载漏洞(Arbitrary File Download Vulnerability)是一种常见的Web安全漏洞,它允许攻击者通过修改输入参数,从服务器下载任意文件,而不仅仅是预期的文件;通常这种漏洞出现在处理用户输入的地方&…

python CSSE7030

1 Introduction In this assignment, you will implement a (heavily) simplified version of the video game ”Into The Breach”. In this game players defend a set of civilian buildings from giant monsters. In order to achieve this goal, the player commands a s…

AI进阶指南第四课,大模型优缺点研究?

在上一篇文章中,我主要探讨了LM模型与企业级模型的融合。 但是,在文末对于具体的大模型优缺点只是简单地说明了一下,并不细致。 因此,在这一节,我将更为细致地说明一下大模型的优缺点。 一,隐私安全 将L…

2018年全国大学生数学建模竞赛A题高温服装设计(含word论文和源代码资源)

文章目录 一、部分题目二、部分论文三、部分Matlab源代码问题11 求解h1h22 已知h1h2求解温度分布 问题21 求解第二层最佳厚度 四、完整word版论文和源代码(两种获取方式) 一、部分题目 2018 年高教社杯全国大学生数学建模竞赛题目 A 题 高温作业专用服…

Linux C 程序 【02】创建线程

1.开发背景 上一个篇章,基于 RK3568 平台的基础上,运行了最简单的程序,然而我们使用了 Linux 系统,系统自带的多线程特性还是比较重要的,这个篇章主要描述线程的创建。 2.开发需求 设计实验: 创建一个线程…

入门JavaWeb之 JavaBean 实体类

JavaBean 有特定写法: 1.必须有一个无参构造 2.属性必须私有 3.必须有对应的 get/set 方法 一般用来和数据库的字段做映射 ORM:对象关系映射 表->类 字段->属性 行记录->对象 连接数据库 没有的话去 Settings -> Plugins 搜索 Data…

Vue-路由

路由简介 SPA单页面应用。导航区和展示区 单页Web应用整个应用只有一个完整的页面点击页面中的导航连接不会刷新页面,只会做页面的局部更新数据需要通过ajax请求获取 路由:路由就是一组映射关系,服务器接收到请求时,根据请求路…

[论文阅读笔记33] Matching Anything by Segmenting Anything (CVPR2024 highlight)

这篇文章借助SAM模型强大的泛化性,在任意域上进行任意的多目标跟踪,而无需任何额外的标注。 其核心思想就是在训练的过程中,利用strong augmentation对一张图片进行变换,然后用SAM分割出其中的对象,因此可以找到一组图…

k8s集群node节点加入失败

出现这种情况: [preflight] FYI: You can look at this config file with kubectl -n kube-system get cm kubeadm-config -o yaml [kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml" [kubelet-start] Writing kub…

python 识别图片点击,设置坐标,离设置坐标越近的优先识别点击

import pyautogui import cv2 import numpy as np import mathdef find_and_click(template_path, target_x, target_y, match_threshold0.8):"""在屏幕上查找目标图片并点击。Args:template_path: 目标图片的路径。target_x: 预设的坐标 x 轴值。target_y: 预设…

OpenCV报错已解决:Vector析构异常OpencvAssert CrtlsValidHeapPointer

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引入 在使用OpenCV进行图像处理时,我们可能会遇到Vector析构异常OpencvAssert CrtlsValidHeapPointer的问题。本文将…

基于LMS自适应滤波的窄带信号宽带噪声去除(MATLAB R2021B)

数十年的研究极大的发展了自适应滤波理论,自适应滤波理论已经成为信号处理领域研究的热点之一。从理论上讲,自适应滤波问题没有唯一解。为了得到自适应滤波器及其应用系统,可以根据不同的优化准则推导出许多不同的自适应理论。目前该理论主要…