热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

计算机信息的表示与编码,计算机信息表示与编码知识分析

p摘要:计算机信息的表示与编码一直是困扰初学者的一个难题,通过对计算机信息的表示、信息的单位、信息的编码这三部分的深入探讨和讲解,让初学

p>摘要:计算机信息的表示与编码一直是困扰初学者的一个难题,通过对计算机信息的表示、信息的单位、信息的编码这三部分的深入探讨和讲解,让初学者对计算机内部原理有了一个启发性的了解,为进一步学习计算机知识打下坚实基础。

关键词:信息表示;信息编码;信息单位;内部原理

引言

随着计算机的流行和普及,各种类型的微型计算设备(pad、surface)已经深入到各家各户,越来越多的人加入到学习计算机知识、研究计算机原理的队伍中来。学习计算机知识绝不仅仅是学习类似office那样的简单操作,而是需要研究计算机原理和软硬件等知识。目前计算机的研究方向已经十分细化,从大的方向上说,比如软件、硬件、网络、人工智能等等都是目前热门的研究方向。以软件为例,计算机的工作是通过软件控制的,而软件是用程序编写的,程序是指令的集合,而指令就是计算机可以识别的命令,这些命令都是计算机中的控制信息和数据信息。归根结底,我们首先要理解信息在计算机中是如何存储和表示的。

1、信息的表示

计算机内部的信息可以分成两大类:数据信息和控制信息。数据信息是计算机程序加工的对象,包括数值信息(定点数和浮点数等)和非数值信息(图像和声音等)。控制信息是一些控制计算机操作的指令。无论是数据信息还是控制信息,在计算机中都是用二进制数据表示的。也可以说计算机中的数字系统是二进制系统。这种二进制表示法和我们平时习惯使用的十进制大不相同。二进制里面的数字只能由0和1构成,进位原则是逢二进一。为什么在计算机中用二进制来表示数据呢?因为电路中最稳定的状态就是两种状态,所以用着两种状态分别表示0和1最为恰当。因此在计算机中用二进制表示数据比较容易物理实现。另外二进制的数字运算更为简单,因为只有两个数字0和1。当然,二进制对于人来说可读性比较差,因此在计算机高级语言的书写中并不直接用二进制,而是要把源程序编译以后得到二进制的机器语言。

2、信息的单位

上面已经讲到,计算机中所有的信息都是用二进制来表示的,虽然有时在编程的时候用八进制或者十六进制表示一些信息,但是在计算机中都会将这些进制数转化成二进制表示,只是在展现的时候出现多样化的信息。计算机中信息的单位和二进制也息息相关。信息存储的最小单位就是位,一个位就是一个二进制位(0或1),用小写字母b表示。由位可以组成字节,在计算机中一个字节是由8个二进制位组成的,用大写字母B表示。在计算机中表示文件大小或内存大小的单位一般为KB,表示千字节。1KB=1024B,还有更大的单位兆字节即MB,1MB=1024K。更大的还有吉字节GB,以此类推,1GB=1024M。

3、信息的编码表示

在计算机中的数据虽然是用二进制表示的,但绝不是仅仅将数据化为二进制数这么简单,单就数字和运算来说,首先要对正号和负号做出不同的表示,这里正号和负号恰好可以用一位二进制数0和1来表示。这里我们用0代表正号,1代表负号。比如十进制25就可以表示为011001,而-25则可以表示为111001,可以看出,只有第一位不同,后面的相同。对于相同长度的二进制数,在计算机中如果仅第一位不同,后面的所有位都相同,则可以断定这两个数符号不同,绝对值相同。在计算机中当需要对两个数进行加减运算的时候,符号位0或1要参与运算,这就带来了一些麻烦,这里符号位要单独处理才行。比如两个数都是正数(符号位为0)则结果的符号位也为0,两个数都是负数(符号位为1)则结果的符号位也为1。倘若两个数符号位相反即一个是正数,一个是负数的话,则需要比较两个数的绝对值大小才能判断结果的正负。这些判定用计算机硬件实现是及其复杂的。另外还有一个方面就是用带符号的二进制表示零会有两种结果,即0000…0和1000…0,因为0可以看成是+0和-0,因此,在计算机中的信息不能够直接用二进制表示。人们需要找出一种更好的编码方法,使得运算起来能够将符号位一起运算还能得到正确的结果,这就引入了计算机之信息的存储形式:补码存储。如何求出一个数字的补码在许多计算机的教科书中都给与了充分的阐述,这里我们主要讲解一下补码的含义。正数的补码还是原来的加上符号的二进制形式(也叫原码)。负数的补码则要通过“模数的概念来理解”。我们知道,对于钟表,12是一个循环,过了12就又从1开始数了。如果我们的手表上指的是8点,而标准时间是6点,我们就可以向后拨两个格,也可以向前拨10个格,都可以达到同样的效果。也就是说对于模数12来说,2和10是互补的,一个数减去2和一个数加上10是一样的,一个数减去10和一个数加上2也是一样的。受此启发,在计算机中,如果A-B,那么我们可以把-B转化成补码,然后可以用A的补码加上B的补码来完成操作。限于篇幅,不再举例。用补码表示计算机信息有很多好处,首先是0的表示唯一了,不存在正零和负零之分;其次是符号位可以正常参与运算,最后仍然能够得到正确的结果,无需单独运算;还有就是用补码进行运算时,减法运算可以转换为加法运算。如果A-B,可以理解为A+(-B),简化了硬件设计的难度。

4、总结与展望

计算机中信息的表示和编码是学习理解计算机工作原理的基础,也是计算机初学者学习计算机的第一道拦路虎,许多计算机毕业生直到本科毕业对于信息的编码表示也是一知半解,影响到了他们对于计算机理论的后续学习。本文通俗地讲解了计算机中数据的表示方法和编码原理,并用例子加以形象说明,初学者深刻理解这些内容对于进一步学习计算机理论知识有着莫大的好处。

作者:曹挚 单位:徐州幼儿师范高等专科学校



推荐阅读
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 解决PHP与MySQL连接时出现500错误的方法
    本文详细探讨了当使用PHP连接MySQL数据库时遇到500内部服务器错误的多种解决方案,提供了详尽的操作步骤和专业建议。无论是初学者还是有经验的开发者,都能从中受益。 ... [详细]
  • 解读MySQL查询执行计划的详细指南
    本文旨在帮助开发者和数据库管理员深入了解如何解读MySQL查询执行计划。通过详细的解析,您将掌握优化查询性能的关键技巧,了解各种访问类型和额外信息的含义。 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • Google最新推出的嵌入AI技术的便携式相机Clips现已上架,旨在通过人工智能技术自动捕捉用户生活中值得纪念的时刻,帮助人们减少照片数量过多的问题。 ... [详细]
  • 本文深入探讨了 Java 编程语言的基础,特别是其跨平台特性和 JVM 的工作原理。通过介绍 Java 的发展历史和生态系统,帮助初学者理解如何编写并运行第一个 Java 程序。 ... [详细]
  • 根据最新发布的《互联网人才趋势报告》,尽管大量IT从业者已转向Python开发,但随着人工智能和大数据领域的迅猛发展,仍存在巨大的人才缺口。本文将详细介绍如何使用Python编写一个简单的爬虫程序,并提供完整的代码示例。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
  • 机器学习中的相似度度量与模型优化
    本文探讨了机器学习中常见的相似度度量方法,包括余弦相似度、欧氏距离和马氏距离,并详细介绍了如何通过选择合适的模型复杂度和正则化来提高模型的泛化能力。此外,文章还涵盖了模型评估的各种方法和指标,以及不同分类器的工作原理和应用场景。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • 解决微信电脑版无法刷朋友圈问题:使用安卓远程投屏方案
    在工作期间想要浏览微信和朋友圈却不太方便?虽然微信电脑版目前不支持直接刷朋友圈,但通过远程投屏技术,可以轻松实现在电脑上操作安卓设备的功能。 ... [详细]
  • PHP 5.5.0rc1 发布:深入解析 Zend OPcache
    2013年5月9日,PHP官方发布了PHP 5.5.0rc1和PHP 5.4.15正式版,这两个版本均支持64位环境。本文将详细介绍Zend OPcache的功能及其在Windows环境下的配置与测试。 ... [详细]
  • 本文详细记录了在银河麒麟操作系统和龙芯架构上使用 Qt 5.15.2 进行项目打包时遇到的问题及解决方案,特别关注于 linuxdeployqt 工具的应用。 ... [详细]
author-avatar
卢嘉怡i
这个家伙很懒,什么也没留下!
RankList | 热门文章
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有