|这个作业属于哪个课程|https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP
|这个作业要求在哪里|https://www.cnblogs.com/rocedu/p/9577842.html#WEEK03
|这个作业的目标|数字分类与计数法
位置计数法
进制转换
模拟数据与数字数据
压缩与解压
数字化
信息安全
|作业正文|https://www.cnblogs.com/songjialinsjl/p/18462805
教材学习内容总结
《计算机科学概论》第七版第二章通常涉及计算机数据表示、记数系统等相关内容,以下是一些常见的重点:
1. 记数系统概述:
- 基数:记数系统中使用的数字的种类。比如二进制的基数是2,使用的数字为0和1;十进制的基数是10,使用0到9这10个数字。不同的基数决定了记数系统的特点和应用场景。
- 位值:每个位置的数值权重。在不同的记数系统中,数位的位值是基于基数的幂次方。例如,在十进制中,百位的位值是10² = 100,十位的位值是10¹ = 10,个位的位值是10⁰ = 1。
2. 常见记数系统: - 二进制:计算机内部主要使用的数值表示方式。其优点是易于用电子电路实现,只有0和1两个数字,每位的权重是2的幂。比如二进制数101,转化为十进制就是1×2² + 0×2¹ + 1×2⁰ = 5。
- 十进制:日常生活中最常用的记数系统,符合人类的思维习惯,便于进行一般的数学运算。
- 十六进制:常用于计算机科学中表示二进制数据,便于阅读和表示大数。因为每4位二进制数可以用1位十六进制数表示,十六进制使用数字0-9以及字母A-F(分别代表10-15)。例如,二进制数1111 1111可以表示为十六进制的FF。
- 八进制:使用数字0-7,每位的权重是8的幂。在某些计算机应用中使用,但相对较少见。
3. 数制转换: - 二进制转十进制:将二进制数的每位数乘以相应的2的幂,然后求和即可得到十进制数。例如,二进制数1101转化为十进制为1×2³ + 1×2² + 0×2¹ + 1×2⁰ = 13。
- 十进制转二进制:采用除2取余法。不断将十进制数除以2,记录余数,直到商为0,然后逆序排列余数即为对应的二进制数。例如,将10转化为二进制,10÷2 = 5 余 0,5÷2 = 2 余 1,2÷2 = 1 余 0,1÷2 = 0 余 1,所以10的二进制表示为1010。
4. 数据表示法: - 字符编码:计算机使用编码方式将字符转换为数字以便存储和处理。常见的字符编码标准有 ASCII 和 Unicode。ASCII 码可以表示128个字符,包括英文字母、数字、标点符号等;Unicode 则可以表示多种语言的字符,是 ASCII 的超集。
- 浮点表示法:用于表示小数,分为符号位、指数位和尾数位。这种表示法能够处理很大或很小的数值,但在进行浮点运算时可能会存在精度问题。
5. 二进制运算: - 加法:类似于十进制加法,但要注意进位。例如,二进制的 1 + 1 = 10(逢二进一)。
- 减法:需要关注借位的问题。比如,二进制的 10 - 1 = 1。
- 乘法与除法:可以通过反复的加法或减法实现。例如,二进制的乘法 101×11,可以转化为 101 + 1010 = 1111。
总之,第二章主要是为读者建立计算机数据表示的基础概念,理解不同记数系统的特点和相互转换方法,以及计算机中数据的各种表示形式和运算方式,这些知识对于后续深入学习计算机科学具有重要的基础作用。
《计算机科学概论》的第三章通常涉及计算机中数据的表示、存储、处理等方面的内容,以下是一些常见的要点:
1. 数据的基本概念:
- 数据与信息的区别:数据是未经组织的基本值或事实,是对事物的原始记录;而信息是经过处理、具有一定意义且能够有效解决问题的数据。例如,一堆杂乱的数字是数据,而经过分析整理后得出的统计结果、趋势等就是信息。
- 模拟数据与数字数据:
- 模拟数据是用连续形式表示的信息,它在自然界中广泛存在,比如声音的声波、温度的变化等都是模拟信号。模拟数据可以取连续范围内的任意值,具有无限的精度。
- 数字数据则是用离散形式表示的信息,进行数字化处理后得到的结果。数字数据只能取有限个离散的值,便于计算机存储和处理。
2. 数据的表示方法: - 二进制表示法:计算机内部采用二进制来表示数据,因为二进制只有0和1两个数字,易于用电子电路实现。例如,一个8位的二进制数可以表示0到255之间的整数。
- 负数的表示法:
- 符号数值表示法:在这种表示方法中,用符号位来表示数的正负,0通常表示正数,1表示负数,其余位表示数值的大小。例如,在8位二进制中,00000001表示+1,10000001表示-1。
- 二进制补码表示法:先将对应的正数按位取反(0变1,1变0),然后再加1,得到的结果就是该负数的二进制补码表示。这种表示方法可以方便地进行减法运算,并且在计算机中更容易实现。例如,对于5的二进制表示00000101,其负数-5的二进制补码表示为11111011。
- 实数的表示法:
- 浮点表示法:这是计算机中表示实数的常用方法,它由符号位、尾数和指数三部分组成。例如,一个浮点数可以表示为 ,其中 是符号位(0 表示正,1 表示负), 是尾数, 是指数。这种表示方法可以表示很大或很小的实数,但存在精度问题。
- 科学计数法:是另一种浮点表示法,将一个实数表示为基数(通常是10)的幂次方乘以一个系数的形式,例如 。
3. 文本的表示: - 字符集:字符和表示它们的代码的清单称为字符集。常见的字符集有 ASCII 和 Unicode。ASCII 码是最基本的字符编码标准,用7位二进制数表示128个字符,包括英文字母、数字、标点符号等;Unicode 是为了解决 ASCII 码无法表示世界上所有字符的问题而产生的,它是 ASCII 的超集,可以表示几乎所有的语言字符。
- 文本压缩:由于文本数据量可能很大,为了节省存储空间和传输带宽,需要对文本进行压缩。常见的文本压缩方法有关键字编码、行程长度编码、Huffman 编码等。
- 关键字编码:用单个字符代替常用的单词,但只能对三个及以上的字符进行编码,且不能在原始文本中有歧义。
- 行程长度编码:将一系列重复出现的字符替换为它们重复出现的次数。
- Huffman 编码:用变长的二进制串表示字符,使常用的字符具有较短的编码,从而提高压缩率。
4. 音频数据的表示:音频数据是通过对模拟音频信号进行采样和量化得到的数字信号。音频信号的数字化需要确定采样频率和量化精度,采样频率越高、量化精度越高,音频的质量就越好,但数据量也会越大。常见的音频格式有 MP3、WAV 等,MP3 是一种有损压缩格式,可以在保持较高音频质量的同时大大减小文件大小。
5. 图像与图形的表示: - 数字化图像:照片等图像是由许多独立的像素单元组成的,数字化一幅图像就是把它表示为一个独立的点集,这些点称为像素。图像的分辨率代表了图像中像素的个数,通常用横向像素数乘以纵向像素数来表示,例如 2560×1600 的分辨率表示图像横向有 2560 个像素,纵向有 1600 个像素。常见的图像存储格式有 BMP、JPEG、PNG 等,BMP 是未经压缩的位图格式,文件较大;JPEG 是最常用的有损压缩格式,可以在一定程度上损失图像质量来减小文件大小;PNG 是一种无损压缩格式,支持透明背景。
- 图形的矢量表示法:与光栅图形(即像素图形)不同,矢量图形是用线段和几何图形来表示图像的,它的优点是可以无限放大而不失真,文件大小相对较小,常用于绘制图标、标志等简单图形。
6. 视频的表示:视频是由一系列连续的图像帧组成的,视频的压缩技术包括时间压缩和空间压缩。 - 时间压缩:通过对比连续帧之间的差别,删除相似的帧图像,只保留关键帧,从而减少数据量。
- 空间压缩:基于静态图像的压缩技术,整合一帧以内的相似信息,减少每一帧图像的数据量。
教材学习中的问题和解决过程(先问 AI)
- 问题1:十进制转化为十六进制的方法?
- 问题1解决方案:十进制转换为十六进制主要有以下两种方法:
除16取余法
1. 用十进制数除以16,得到商和余数。
2. 余数如果是0 - 9,就直接记录这个数字;如果余数是10 - 15,就用字母A - F来表示(10用A表示、11用B表示,以此类推),这个余数作为十六进制数的最低位(最右边的位)。
3. 然后用得到的商继续除以16,再记录余数,作为十六进制数的次低位。
4. 不断重复这个过程,直到商为0。
5. 最后,将所有记录下来的余数从右到左排列,就得到了对应的十六进制数。
例如,将十进制数250转换为十六进制:
- 250÷16 = 15,余数为10(用A表示)。
- 15÷16 = 0,余数为15(用F表示)。
从右到左排列余数得到FA,所以十进制250转换为十六进制是FA。
降幂法(适用于整数部分)
1. 先找到小于或等于该十进制数的最大的16的幂次方数,将这个幂次方数对应的十六进制位置为1。
2. 用十进制数减去这个16的幂次方数,得到一个差值。
3. 再寻找小于或等于这个差值的最大的16的幂次方数,将其对应的十六进制位置为1,如此反复。
4. 对于那些没有对应的16的幂次方数参与减法运算的位,就置为0。
例如,对于十进制数340,16的平方( )是小于等于340的最大16的幂次方,对应的十六进制位(从右向左数第3位)为1,340 - 256 = 84。16的1次方( ),84中有5个16,对应的十六进制位(第2位)为5,84 - 16×5 = 4。对应的十六进制位(第1位)为4。所以340转换为十六进制是154。
我的理解:我认为进制的转化主要使用竖式除法,一个十进制的数字每次除以2余数写在最右边,商接着除
基于AI的学习
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 500行 | 30篇 | 400小时 | |
第一周 | 0/0 | 1/1 | 4/4 | |
第二周 | 0/0 | 1/2 | 6/10 | |
第三周 | 5/5 | 1/3 | 6/16 |