计算机科学基础知识

1. 计算机科学基础知识

  1.1 数制及其转换

    二进制、八进制、十进制和十六进制等常用数制及其相互转换

  1.2 计算机内数据的表示

    数的表示(原码、反码、补码、移码表示,整数和实数的表示,精度和溢出)

    原码表示法:最高位是符号位。数值X的原码记为[X],如果机器字长为n(即采用n个二进制位表示数据),则原码表示:

    [+0]=0 0000000  [-0]=1 0000000

    [+1]=0 0000001  [-1]=1 0000001

    [+127]=0 1111111  [-127]=1 1111111

    [+0.5]=0 .1000000  [-0.5]=1 .1000000

    反码表示法:数值X的反码记为[X],如果机器字长为n,则原码表示:正数的反码表示同原码,负数的反码表示将正数原码表示中的01反过来。

    补码表示法:负数的补码表示将正数原码表示中的01反过来再+1。0有唯一补码,全为0。

    [+0.5]=0 .1000000  [-0.5]=1 .1000000

    [+1]=0 0000001  [-1]=1 1111111

    在计算机系统中常采用补码来表示和运算数据,原因是采用补码可以简化计算机运算部件的设计。

    移码表示法:将补码的符号位取反

    浮点表示法:阶符   阶码    数符    尾数,例:一个二进制数N可以表示为:N=2E*F,其中2是阶符,E是阶码,F是尾数。
    浮点数表示的精读取决于尾数的宽度,范围取决于基数的大小和指数的宽度。

    对于特定机器而言,指数(阶符)是固定不变的,所以在浮点数中指数并不出现。

    计算机在进行浮点数的相加(减)运算之前先进行对阶操作,若x的阶码大于y的阶码,则应将y的阶码扩大至与x的阶码相同,且使y的尾数部分进行算术右移。

    非数值表示(字符和汉字表示,声音表示、图像表示)

  1.3校验方法和校验码(奇偶校验码、海明校验码、循环冗余校验码)

    奇偶校验码:通过在编码中增加一校验位来使编码中1的个数为奇数(奇校验)或者为偶数(偶校验),从而使码距变为2(奇偶校验码添加了1位校验码,使得要变成另一个码字最少要修改两位,这就使其码距变成2)。于奇校验,它可以检测代码中奇数位出错的编码,但不能发现偶数位出错的情况。

    将一个码字变成另一个码字时必须改变的最小位数就是码字之间海明距离,简称码距。

    根据海明的研究发现,可以发现“≤码距-1”位的错误。

    根据海明的研究发现,可以纠正“<码距/2”位的错误,因此如果要能够纠正n位错误,则所需最小的码距应该是“2n+1”。

    海明校验码:在数据位之间的特定位置上插入k个校验位通过扩大码距来实现检错和纠错。

    设数据位是n位,校验位是k位,则n和k必须满足以下关系:2k-1≥n+k
    

    G4G3G2G1的十进制值指出了发生错误的位置,将其取反即可纠正错误。

    循环冗余校验码(CRC校验码):

    求CRC编码采用的是模2运算,按位运算,不发生进位和借位。

    CRC校验码的计算:

  例如:原始报文为“11001010101”,其生成多项式为:“x 4 +x 3 +x+1”。在计算时,是在原始报文的后面若干个0(等于校验码的位数,而生成多项式的最高幂次就是校验位的位数,即使用该生成多项式产生的校验码为4位)作为被除数,除以生成多项式所对应的二进制数(根据其幂次的值决定,得到11011,因为生成多项式中除了没有x 2之外,其他位都有)。然后使用模2除,得到的商就是校验码。
  

  然后将0011添加到原始报文的后面就是结果:110010101010011。

    检查信息码是否有CRC错误:

  要想检查信息码是否出现了CRC错误的计算很简单,只需用待检查的信息码做被除数,除以生成多项式,如果能够整除就说明没有错误,否则就是出错了。另外要注意的是,当CRC检查出现错误时,它是不会进行纠错的,通常是让信息的发送方重发一遍。

    实际应用时,发送装置计算出CRC值并随数据一同发送给接收装置,接收装置对收到的数据重新计算CRC并与收到的CRC相比较,若两个CRC值不同,则说明数据通信出现错误。

  1.4 算术运算和逻辑运算

    计算机中的二进制数运算方法

    逻辑代数的基本运算

  1.5 其他数学基础知识

    常用数值计算

    排列组合,概率论应用,应用统计(数据的统计分析)

    编码基础

    命题逻辑、谓词逻辑、形式逻辑的基础知识

    运筹基本方法

浮点数表示的精读取决于尾数的宽度,范围取决于基数的大小和指数的宽度。

原文地址:https://www.cnblogs.com/l999q/p/11764108.html

时间: 2024-08-29 17:56:35

计算机科学基础知识的相关文章

计算机科学基础知识(三)静态库和静态链接

三.将relocatable object file静态链接成可执行文件 将relocatable object file链接成可执行文件分成两步,第一步是符号分析(symbol resolution),第二步是符号重新定位(Relocation).本章主要描述这两个过程,为了完整性,静态库的概念也会在本章提及. 1.为什么会提出静态库的概念? 程序逻辑有共同的需求,例如数学库.字符串库等,如果每个程序员在撰写这些代码逻辑的时候都需要自己重新写那么该是多么麻烦的事情,而且容易出错,如果有现成的,

计算机科学基础知识(一)The Memory Hierarchy

一.前言 最近一个问题经常萦绕在我的脑海:一个学习电子工程的机械师如何称为优秀的程序员?(注:本文作者本科学习机械设计,研究生转到电子工程系学习,毕业后却选择了系统程序员这样的职业).经过思考,我认为阻挡我称为一个优秀程序员的障碍是计算机科学的理论知识.自然辩证法告诉我们:理论源于实践,又指导实践,她们是相辅相成的关系.虽然从业十余年,阅code无数,但计算机的理论不成体系,无法指导工程面具体技能的进一步提升. 计算机科学博大精深,CPU体系结构.离散数学.编译器原理.软件工程等等.最终选择从下

计算机科学基础知识(二)Relocatable Object File

一.前言 一个合格的c程序员(也可以叫做软件工程师,这样看起来更高大上,当然,我老婆心情不好的时候总是叫我"死打字的",基本也能描述这份职业,呵呵)需要理解编译.链接和加载的过程,而不是仅仅关注c语言的语法和词法.本文主要以此为切入点,描述linux系统下,一个普通的hello world程序的生命历程,并借机灌输一些程序编译时和运行时的基本术语和概念.当然,由于我本人是一个linuxer,因此借用linux来描述这些知识会方便些,但是对于计算机科学而言,这些东西概念上是类似的,只是实

计算机科学基础知识(四)动态库和位置无关代码

一.前言 本文主要描述了动态库以及和动态库有紧密联系的位置无关代码的相关资讯.首先介绍了动态库和位置无关代码的源由,了解这些背景知识有助于理解和学习动态库.随后,我们通过加-fPIC和不加这个编译选项分别编译出两个relocatable object file,看看编译器是如何生成位置无关代码的.最后,我们自己动手编写一个简单的动态库,并解析了一些symbol Visibility.动态符号表等一些相关基本概念. 本文中的描述是基于ARM MCU,GNU/linux平台而言的,本文是个人对动态库

计算机科学基础知识(五)动态链接

一.前言 本文以类似hello world这样的简单程序为例,描述了动态连接的概念.第二章描述了整个动态链接的大概过程,随后的两章解析了程序访问动态库中的数据和调用动态库中函数的过程. 注意:阅读本文之前需要先了解relocatable object file.静态链接以及动态库和PIC这些内容. 二.动态链接的过程概述 下面的图展示了动态链接的过程: Static Linker(对于本文的场景,它就是arm-linux-ld)接收下面的输入: (1)命令行参数 (2)linker script

《计算机科学导论》之数据结构基础知识

<计算机科学导论(第二版)>  11章   数据结构 11.1  引言  1.为什么要使用数据结构? 尽管单变量在程序设计语言中被大量使用,但是它们不能有效地解决复杂问题.此时考虑使用数据结构. 2.数据结构是什么? 数据结构是相互之间存在一种或多种特定关系的数据元素的集合. 3.三种数据结构 数组: 记录; 链表: 大多的编程语言都隐式实现了前两种,而第三种则通过指针和记录来模拟. 11.2  数组 1.为什么使用数组? 为了处理大量的数据,需要一个数据结构,如数组.当然还有其他的数据结构.

《统计自然语言处理》读书笔记 一.基础知识及概念介绍

最近准备学习自然语言处理相关的知识,主要参考<统计自然语言处理·宗成庆>和<Natural Language Processing with Python>,推荐大家阅读.第一篇主要介绍的是NLP的基础知识和概念介绍,其实也是我关于NLP的读书笔记吧,希望对大家有所帮助. 一. 概念介绍 自然语言处理 自然语言处理(Natural Language Processing,简称NLP)技术的产生可追溯到20世纪50年代,它是一门集语言学.数学(代数.概率).计算机科学和认知科学等于一

高项3.7日第一次课,第一章信息化基础知识与第二章信息系统服务管理梳理

第一章 信息化的基础知识 1.国家信息化体系要素: 主要包括6要素,信息技术应用(龙头).信息资源(关键).信息网络(必要手段).信息技术产业(基础).信息化人才(成功之本).信息化法规政策和规范(保障). 2.电子政务: 电子政务建设的指导原则: (1)统一规划,加强领导. (2)需求主导,突出重点. (3)统一规划,拉动产业. (4)统一标准,保障安全. 主要任务: (1)电子政务网络由政务内网和政务外网构成,两网之间物理隔离,政务外网与互联网之间逻辑隔离.政务内网主要是副省级以上政务部门的

java--学习java从这里开始:Java语言基础(1)《基础知识篇》--黑马程序员

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- Java语言基础(1) 从这篇日记开始说一些关于java的语言基础知识, 1  Java语言概述 java的创始人——詹姆斯·高斯林(James Gosling) 1977年获得了加拿大卡尔加里大学计算机科学学士学位,1983年获得了美国卡内基梅隆大学计算机科学博士学位,毕业后到IBM工作,设计IBM第7一代工作站NeWS系统,但不受重视.后来转至Sun公司,1990年,与Patrick,Na