热门标签 | 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、总结与展望

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

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



推荐阅读
  • Node.js模块化的优势及实践
    本文探讨Node.js模块化的重要性和具体实现方式,包括其带来的代码复用性增强、可维护性提升、以及如何有效避免命名冲突等问题。 ... [详细]
  • 本文档提供了首次周测的答案解析,涵盖特殊符号、命令作用、路径说明以及实战练习等内容。 ... [详细]
  • 本文档旨在提供C语言的基础知识概述,涵盖常量、变量、数据类型、控制结构及函数定义等内容。特别强调了常量的不同类型及其在程序中的应用,以及如何正确声明和使用函数。 ... [详细]
  • Linux内核中的内存反碎片技术解析
    本文深入探讨了Linux内核中实现的内存反碎片技术,包括其历史发展、关键概念如虚拟可移动区域以及具体的内存碎片整理策略。旨在为开发者提供全面的技术理解。 ... [详细]
  • 本文由公众号【数智物语】(ID: decision_engine)发布,关注获取更多干货。文章探讨了从数据收集到清洗、建模及可视化的全过程,介绍了41款实用工具,旨在帮助数据科学家和分析师提升工作效率。 ... [详细]
  • 解决MATLAB中文件 'mischouse.tiff' 不存在的问题
    探讨如何解决在MATLAB中尝试访问文件 'mischouse.tiff' 时出现的文件不存在错误。 ... [详细]
  • 本文介绍了基于Java的在线办公工作流系统的毕业设计方案,涵盖了MyBatis框架的应用、源代码分析、调试与部署流程、数据库设计以及相关论文撰写指导。 ... [详细]
  • iOS 小组件开发指南
    本文详细介绍了iOS小部件(Widget)的开发流程,从环境搭建、证书配置到业务逻辑实现,提供了一系列实用的技术指导与代码示例。 ... [详细]
  • 本文介绍了如何使用Java编程语言实现凯撒密码的加密与解密功能。凯撒密码是一种替换式密码,通过将字母表中的每个字母向前或向后移动固定数量的位置来实现加密。 ... [详细]
  • Java中List的forEach方法与字符串拼接的兼容性问题
    本文深入探讨了在Java中使用List的forEach方法时遇到的字符串拼接问题,提供了有效的解决方案及背后的原理分析,旨在帮助开发者更好地理解和解决此类问题。 ... [详细]
  • 本文探讨了如何选择一个合适的序列化版本ID(serialVersionUID),包括使用生成器还是简单的整数,以及在不同情况下应如何处理序列化版本ID。 ... [详细]
  • 在CentOS 7中部署Nginx并配置SSL证书
    本文详细介绍了如何在CentOS 7操作系统上安装Nginx服务器,并配置SSL证书以增强网站的安全性。适合初学者和中级用户参考。 ... [详细]
  • 如何使用Maven将依赖插件一并打包进JAR文件
    本文详细介绍了在使用Maven构建项目时,如何将所需的依赖插件一同打包进最终的JAR文件中,以避免手动部署依赖库的麻烦。 ... [详细]
  • 页面预渲染适用于主要包含静态内容的页面。对于依赖大量API调用的动态页面,建议采用SSR(服务器端渲染),如Nuxt等框架。更多优化策略可参见:https://github.com/HaoChuan9421/vue-cli3-optimization ... [详细]
  • 本文详细探讨了在Windows 98环境下安装Apache 1.3.9、JServ、GNUJSP 1.0、JDK 1.2.2及JSDK 2.0后遇到的中文显示问题,并提供了多种有效的解决方案。 ... [详细]
author-avatar
卢嘉怡i
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有