信息传递、编码和计算机表示(二)

计算机字符编码01--关于文字的基本概念 计算机字符编码 什么是编码,为什么需要编码 编码是为了表示信息,便于编码后的信息跨越时空的传递。举个例子,人类第一次编码实践是通过声音彼此交流,声音发出者把自己的所感,所想,所见通过声音编码传递给其他人。但声音编码方式显然不太好,太远了声音就听不见了。于是人类发明了第二种编码方式——文字,文字成功解决了声音作为信息编码方式时的时空局限性。 划重点:编码是为了信息的传递(突破信息传播的空间局限 阅读详情

数字计算机的世界就是0和1,所以一切要通过计算机进行计算和表达的信息都必须编码成0、1串。那么计算机中如何表示阿拉伯数字,英文字母、希腊字母、拉丁字母、中文字符、数学符号等呢。下面讲解计算机中如何对这些进行编码,以及现实中编码出现的历史。

 

按照先后顺序,计算机字符编码先后出现的是 ASCII、Extended ASCII、MBCS编码、UNICODE编码。

 

一、Standard ASCII(标准ASCII)

 

ASCII (American Standard Code for Information Interchange),是美国标准信息交换码,由美国国家标准局(ANSI)制定的,它已被国际标准化组织(ISO)定为国际标准,称为ISO 646标准。ASCII码适用于所有拉丁文字,它用7位二进制数进行编码(其最高位(bit7)被用做奇偶校验位),范围是(0x00-0x7F),可以表示128种不同的符号。 其中包括了阿拉伯数字0-9、英文字母a-z和大些的A-Z、数学运算符号、括号、标点、控制字符等。 这些已经满足了最初的需求,下面是ASCII码表

 

ASCII码表

 

注:这128个Code中(从0开始编号,0-127),有些是可视的【0x20(Space)-0x7E(~)】,有些是非可视的【0x00-0x1F和0x7F(DEL)】。非可视字符基本用于控制字符,例如0x07,如果你输出到标准输出,那么计算机会发出“嘀”的响声;0x0D表示回车,0x0A表示换行,0x09表示Tab,等等。

 

 

二、Extended ASCII(扩展ASCII)

一个字节(0x00-0xFF)可以表示256种含义,标准ASCII使用了低128种。 为了能表示更多字符,各厂商制定了很多种ASCII码的扩展规范,于是形成了Extended ASCII,这不是标准ASCII的一部分。例如IBM定义的扩展编码,里面定义了很多的线条,主要用于进行文字形式的格式化显示。里面还包括了希腊字母和数学符号,以及带重音号的拉丁字母。该编码在字符终端下被广泛使用。

IBM Extended ASCII

 

 

该IBM扩展字元集被烧进无数显示卡和印表机的ROM中,并被许多应用程式用於修饰其文字模式的显示方式。不过,该字元集并没有为所有使用拉丁字母表的西欧语言提供足够多的带重音字元,而且也不适用於Windows。Windows不需要图形字元,因为它有一个完全图形化的系统。

在Windows 1.0(1985年11月发行)中,Microsoft没有完全放弃IBM扩展字元集,但它已退居第二重要位置。因为遵循了ANSI草案和ISO标准,纯Windows字元集被称作「ANSI字元集」。 ANSI草案和ISO标准最终成为ANSI/ISO 8859-1-1987,即「American National Standard for Information Processing-8-Bit Single-Byte Coded Graphic Character Sets-Part 1: Latin Alphabet No 1」,通常也简写为「Latin 1」。

这是在图形界面中最广泛使用的扩展,其中包含欧洲各国语言中最常用的非英文字母,但毕竟只有128个字符,某些语言中的某些字母没有包含。如下表所示(编号为128~159的是一些控制字符,表中没有列出):

Extended AscII(Latin-1)

 

 

小结:

1、从上面的讲述看来,很明显0x00-0x7F的字节表示了一个确定的符号(根据ASCII码表),但是0x80-0xFF中某个数字对应的字节,在IBM的扩展ASCII码表和Latin-1中,就有不同的含义。 例如,0xD7在IBM扩展码中显示的是“两竖一横”的符号,但是在Latin-1(ISO 8859-1)中却是数学符号“×”。

Q:那么计算机怎样对待这样的重码情况呢,也就是将0xD7看成是“两竖一横”还是“×”?

A:答案是都可以。为了解决这个问题,需要引入码表(codepage)的概念。MS-DOS 3.3(1987年4月发行)向IBM PC用户引进了内码表(code page)的概念,Windows也使用此概念。内码表定义了字元的映射代码。最初的IBM字元集被称作内码表437,或者「MS-DOS Latin US)。「MS-DOS Latin 1」的是内码表850,它用附加的带重音字母代替了一些线形字元。其他内码表被其他语言定义。最低的128个代码总是相同的;较高的128个代码取决於定义内码表的语言。

 

2、乱码的原因

Q:为什么乱码

A:显示的乱码就是因为实际含义和显示的不一致。例如根据内码表437(IBM Extend ASCII)进行编码,但是显示的时候用内码表850(Latin-1)进行翻译,就出现问题了。

 

 

本文引用了网络上的一些概念,并进行了归结。如有不解,请搜索ASCII 扩展码,获取更多的资料。

 

 

未完待续。。。

11、一点一点地:探索二进制与信息传递 本博客深入探讨了二进制在信息时代的重要性及其在信息传递、通信和计算机科学中的广泛应用。从基础的二进制位概念到复杂的编码系统,如Morse码、Braille盲文、TCP/IP协议和Huffman编码,文章详细解析了二进制如何通过其简洁性和高效性支持现代信息技术的发展。同时,结合实际应用案例,如Perseverance探测器降落伞上的二进制代码,展示了二进制系统的灵活性与实用性。 阅读详情

相关推荐

通信小课堂:电报的发明(编码是通信的核心,通信的设施和编码的设计是相匹配的,其功能是将编了码的信息传递出去。)

文字和书写系统的发明,写字的泥板、竹简、纸张和印刷术都是为了信息的传递。当根据常识对经常出现的字母采用较短的编码,对不常见的字母用较长的编码,这样就可以降低编码的整体长度。和惠斯通发明了电报并且最早实现了商业运营,但他们的发明并不方便使用,因此很快被莫尔斯的发明所取代。和数学家高斯合作,也发明了电报类似的装置,并且建立了哥廷根大学和当地天文台的通信。发报员“嘀嘀嗒嗒”地发报,嘀嗒声的不同其实是继电器接触的时间长短不同所造成的。世界上永远不缺乏从0到1的发明,缺乏的是能够走完全程的人(从0到N)。

专注于计算机研发知识和资讯分享 570

ASCII码详解

ASCII简介 ASCII 码使用指定的 7 位或 8 位二进制数组合来表示 128 或 256 种可能的字符。标准 ASCII 码也叫基础ASCII码,使用 7 位二进制数来表示所有的大写和小写字母,数字 0 到 9、标点符号, 以及在美式英语中使用的特殊控制字符。其中:   0~31及127(共33个)是控制字符或通信专用字符(其余为可显示字符),如控制符:LF(换行)、CR(回...

a62319592的博客 7167

Cartographer从安装到实战:手把手教你运行2D/3D建图与定位

本文提供了一份详尽的Cartographer从零安装到实战应用的完整指南。内容涵盖环境准备、依赖编译、源码构建等关键步骤,并手把手指导读者运行2D/3D官方数据集进行建图与定位测试。文章深入解析了参数配置与自定义数据适配方法,帮助开发者快速掌握这一强大的实时同步定位与建图工具,并将其应用于机器人导航与自动驾驶等实际场景。

rice5的博客 949

标准ASCII编码表

ASCII(American Standard Code for Information Interchange,美国信息互换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代美式英语,并等同于国际标准ISO/IEC 646。标准ASCII编码可表示128个字符,包括大小写拉丁字母,阿拉伯数字、英语标点符号,以及在美式英语中使用的特殊控制字符。另有扩展版本的ASCII编码添加了一些西欧字符,可以表示255个字符,但是西欧国家间对扩充的字符定义不一致,并不是通用版本。 标准ASCII编码表 AS

qq_30901541的博客 6580

Yolov5实现道路裂缝检测

Yolov5实现道路裂缝检测 参考代码链接 Github代码链接 基于Pytorch的Yolov5道路裂缝检测程序运行说明。大家可以结合我的说明和原文说明使用,有问题欢迎询问。 文章目录Yolov5实现道路裂缝检测环境要求测试训练自己的数据集1.创建dataset.yaml文件2.创建标签文件3.组织文件路径4.选择模型5.开始训练 环境要求 Python 3.8或之后的版本 还要安装requirements.txt文件中所有依赖包,包括1.7及以上版本的torch $ pip install -r req

qq_26751379的博客 2万+

Android安全支付(1)-整体架构-keymint

(1)接口定义hardware/interfaces/security/keymint/aidl/android/hardware/security/keymint/IKeyMintDevice.aidl。keymint是keymaster v4之后的替代设计。所以android 15上最好采用keymint的接口进行硬件功能的对接。同时,我们会集成一款紫光的芯片。3.可以用keyStore.getKey()来获取存储在keyStore中的数据进行加密和解密。四、关于keymint的接口定义和具体实现。

Android系统开发-VR OS-系统安全隐私 1767

字符编码(一):ASCII码,扩展ASCII码

ASCII码英文全称America Standard Code for Information Interchange,中文意思:美国信息交换标准码。它已被国际标准化组织(ISO)定为国际标准,称为ISO 646标准。适用于所有拉丁文字字母,ASCII码有7位码和8位码两种形式。ASCII码于1968年提出,用于在不同计算机硬件和软件系统中实现数据传输标准化,在大多数的小型机和全部的个人计算机都使

piaowuxk的专栏 6755

超大规模AI集群跨数据中心互联:Scale-Across技术实现与部署实践

分布式系统通过将计算任务分散到多个节点协同执行,实现算力的横向扩展。其核心原理在于网络通信、数据同步和资源调度机制的技术协同。在AI基础设施领域,分布式架构能有效突破单数据中心算力瓶颈,支撑万亿参数大模型训练。特别是面对长距离传输时延和带宽稳定性挑战,需要采用RDMA、确定性网络等关键技术。Scale-Across作为分布式系统的高级形态,通过跨地域多数据中心互联,构建逻辑统一的AI算力池,为超大规模AI训练和全球推理服务提供核心支撑。本文聚焦AI集群跨数据中心互联的技术路径,涵盖全栈优化、网络自治等实践方

chouxuyi9789的博客 400

字符与字符编码

对字符的理解: 字符指类字形单位或符号,包括字母、数字、运算符号、标点符号和其他符号,以及一些功能性符号。 从人的角度看,字符就是一个独立的符号。 从计算机的角度看,字符就是一串二进制数。 而,这串所谓的二进制数就是对字符的编码。 当然,根据编码的作用不同,就会分出来不同类型的编码。 常用的编码类型: 编码类型 生日 作用 编码的长度 ASCII 1967 表示英语和西欧语言 1byte GB2312 1980 国家简体中文字符集,兼容ASCII 2bytes Unicode 199

Mr____Cheng的博客 1512

【LVGL】学习笔记--(3)界面切换以及显示优化

界面切换和帧率优化

sinat_33408502的博客 1万+

​苹果开发者账号推送证书配置详细指南​

推送证书的配置是iOS应用实现消息推送的核心步骤。通过生成证书、配置描述文件、集成到服务器三大环节,开发者可快速为App启用APNs服务。建议优先使用更灵活的APNs Auth Key替代传统证书,以减少维护成本。确保拥有有效的苹果开发者账号(个人/公司账号),年费已缴纳。

2326

信息传递、编码和计算机表示(四)

信息传递、编码和计算机表示(三)中讲述了中文编码。 本篇将说明Unicode编码、Unicode的转换格式(UTF,Unicode Translation Format)以及MBCS  一、UCS和UnicodeUnicode是基于通用字符集(Universal Character Set)的标准来发展。UCS就是使用多个字节对字符进行统一编码,是的各种语言的各种字符存在于一个编码

FreeWave's space 1524

Android Framework AMS面试题及参考答案

比如,应用 B 的 Activity 如果是 “singleTask” 启动模式,AMS 会查找应用 B 是否有包含该 Activity 的任务栈,若有则将这个任务栈切换到前台,并且清除该 Activity 之上的其他 Activity,实现流畅的跨应用跳转体验。如果一个 Activity 的启动依赖于另一个 Activity 的结果,AMS 会暂停当前 Activity 的部分生命周期操作,等待依赖的 Activity 完成相关操作后,再继续当前 Activity 的生命周期进程。

大模型大数据攻城狮的专栏 1857

信息传递、编码和计算机表示(一)

好久不写,哎,总是懒得抽筋。 不过记性又不好,偶尔有点感悟还是写下来吧。。。 开始进入正题 也许最早人类是通过气味、表情、动作、声音来彼此之间传递信息。 这种信息传递是简单的行为,比如两只熊猿之间为了一根香蕉争斗,可以通过表情,面部肌肉,或者肱二头肌等展示比对方强,应该获得香蕉。 或者雄猿为了博得雌猿的欢心,可以送一根香蕉,吼一首歌等等来传达心意。 这是自然界动物传递信息基本的方法了,这种

FreeWave's space 1252

Android Studio无法启动,Failed to create JVM:error code -1. JVM Path 完美解决方案

Android Studio无法启动,Failed to create JVM:error code -1. JVM Path 完美解决方案。 找到Android studio的启动文件bin目录,把studio64.exe.vmoptions 删除或改名(推荐改名,方便恢复),如果你是32位系统这个文件就是 studio.exe.vmoptions

陈万洲的专栏 4849

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

最新计算机技术信息传递,信息传递技术

[编辑]什么是信息传递技术信息传递技术是通过传输媒介实现信息转移的一种技术,其主要功能是实现信息快速、可靠、安全的转移。在目前的技术条件下,信息传输主要是通过电信网、计算机网、广播电视网等方式来实现的。从发展的角度看,电信网、计算机网、广播电视网呈现出逐渐融合的趋势。[编辑]信息传递技术的构成信息传递技术按网络构成分为:信息传输技术、信息交换技术、信息终端技术和信息传递网络技术等。信息传输是构成信...

weixin_35235724的博客 1679

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

从信息传递的角度来看Android中的广播和Binder

缘起在《关于Android学习的三个终极问题》一文的最后,我曾提到过在看完《信息简史》一书后,顿悟到“开发软件的时候仿佛能看到信息在流动”。《信息简史》是一本非Codin...

Innost的专栏 6134

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

计算机的进制编码,计算机中的进制和编码(转载)

古时候,人们是如何来传递消息的?当年周幽王为博褒妃一笑,不顾众臣反对,竟数次无故点燃边关告急用的烽火台,使各路诸侯,长途跋涉,匆忙赶去救驾。结果,被戏而回。周幽王从此便失信于诸侯,最后,当边关真的告急之时,他点燃烽火却再也没人赶来救他了!不久,便死于刀下,亡了西周。西周第九代国君是周厉王,贪财好色,昏庸残暴,激起了公元前841年的“国人(平民)暴动”。周朝从此衰落下去,社会动荡不安。扯远了,我们说...

weixin_27012835的博客 415

计算机中,到底什么是字符编码?

1.到底什么是字符编码? 这个问题其实一直困惑了我很久,虽然做了这么久计算机,但是还是没有理解,今天看了<编码的奥秘>这本书,真是豁然开朗,我们利用计算机到底做什么,存储信息,处理信息,传递信息,但是对于计算机来说,由于底层电路的设计本质,只能是识别0和1两种代码,那么传递的也只能是0和1了,那么,我们想要表达一句话,传递个长点的信息该怎么做呢,我们就思考,我们人类平日里在传递信...

weixin_33895016的博客 881

零基础也能懂的计算机原理指南——《编码》第二版实用解析

在信息化高速发展的今天,理解计算机的运行原理已经不再只是程序员的专利。《编码:隐匿在计算机软硬件背后的语言(第2版)》作为计算机入门经典,以清晰、严谨的方式揭示了计算机从底层电路到高级程序的完整工作流程。本文将从三个章节为大家解读这本书的核心价值。

一键难忘的博客 6042

python基础 -13- 字符的编码和编码转换(ASCII,GB2312,GBK,Unicode,UTF)

字符编码 介绍  计算机只认识二进制,生活中的数字要想让计算机理解就必须转换成二进制。十进制到二进制的转换只能解决计算机理解数字的问题,那么文字要怎么让计算机理解呢?  于是我们就选择了一种曲线救国的方式,既然数字可以转换成十进制,我们只要想办法把文字转换成数字,这样文字不就可以表示成二进制了么?  可是文字应该怎么转换成数字呢?就是强制转换啊,简单粗暴呀。 我们自己强行约定了一个表,把文字和数字对应上,这张表就相当于翻译,我们可以拿着一个数字来对比对应表找到相应的文字,反之亦然。 ASCII码  这张表

迷雾总会解 2946

图表示学习中的Transformer:Graphormer的突破

人工智能咨询培训老师叶梓 转载标明出处在自然语言处理和计算机视觉等领域,Transformer架构已经成为主导选择。然而,在图级别的预测任务中,它的表现并不如主流的图神经网络(GNN)变体。这一现象引发了一个思考:Transformer是否适合图表示学习,以及如何使其在图表示学习中发挥作用。来自大连理工大学、普林斯顿大学、北京大学和微软亚洲研究院的研究人员共同提出了一种名为Graphormer的新型架构,该架构基于标准的Transformer架构,并在多个图表示学习任务上取得了优异的结果。

人工智能前沿分享 1280

关于计算机编码这篇就够了

1.问题1、什么是位,字节,字符,字符集,字符串?2、为什么一个字节长度表示的范围是[-128,127],为什么不是对称的?3、为什么计算机无法精确表示小数?4、原码,反...

wanshibugong119的专栏 818

计算机编码中进制的区别,计算机中的进制和编码(转载)

古时候,人们是如何来传递消息的?当年周幽王为博褒妃一笑,不顾众臣反对,竟数次无故点燃边关告急用的烽火台,使各路诸侯,长途跋涉,匆忙赶去救驾。结果,被戏而回。周幽王从此便失信于诸侯,最后,当边关真的告急之时,他点燃烽火却再也没人赶来救他了!不久,便死于刀下,亡了西周。西周第九代国君是周厉王,贪财好色,昏庸残暴,激起了公元前841年的“国人(平民)暴动”。周朝从此衰落下去,社会动荡不安。扯远了,我们说...

weixin_42469012的博客 433

《编码.藏匿在计算机软硬件背后的语言》读书笔记01-10

1至亲密友 好朋友远距离交流,使用手电筒开和关传递信息,开关的次数太多,想表达的文字太复杂,难度非常大。 引出莫尔斯电码,使用点和划(短闪和长闪两种形式)通信。 结论: ~编码无处不在,手电筒的闪烁,莫尔斯电码,布莱叶盲文… ~本书中,编码是一种用来在机器和人之间传递信息的方式。 2编码与组合 莫尔斯电码发送简单,但是接收困难,解决方法:通过组合编码构建编码表。 结论: ~码字的数目=2^编码的位数。 3布莱叶盲文与二进制码 布莱叶改进盲人阅读方法,创建了布莱叶盲文,使用2*3的矩阵,利用凸/平点表示信息,

weixin_44620658的博客 275
上一篇: 信息传递、编码和计算机表示(一)
下一篇: 信息传递、编码和计算机表示(四)
FreeWave
博客等级 码龄19年 9粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值