C1见习工程师认证C1-01任务记录&教学

142 阅读7分钟

C1-01

任务一:用「0」和「1」绘图

Code上的问题

问题1

在这里插入图片描述
对于这里的图像宽度和高度是由网站上文本框里的两个二进制数修改的,初始的0000 0100就是4,所以初始大小是4×4,我们可以根据需要修改这个数值。所以第一个问题我们将数值随意修改就可以啦。
在这里插入图片描述
在这里插入图片描述

问题2

在这里插入图片描述
对于这个问题没有具体要求,我试了除了可以调整图像宽高,能做的就是用0和1控制颜色,0可以将一个格显现黑色,而1就是白色,这里无需换行也能调整下一行的颜色,我这里换行是为了更加清晰。

问题3-1

在这里插入图片描述
通过对这里的观察可以发现,缺少的两个颜色就是110和011,补在对应位置即可。
在这里插入图片描述

问题3-2

在这里插入图片描述
通过对这个题目的观察可以发现,在输入框的右上角有一个像素格式,根据像素格式已经给出的红色例子我们发现,对应颜色的位置是1就可以显现该颜色,我这里选择了绿色。在这里插入图片描述

在这里插入图片描述

问题3-3

在这里插入图片描述
在这里插入图片描述
对于这个问题依然是根据像素格式按要求调整,红色就是F00,绿色0F0,蓝色00F,灰色的话只需要三种颜色都淡一些,AAA、BBB这些都可以。在这里插入图片描述

问题4-1

在这里插入图片描述
这个问题应该就是让我们熟悉每像素9位的图像,可以表示512种颜色,并不需要做什么,如果一定要改的话,可以改一些颜色。

问题4-2

在这里插入图片描述
这边根据要求将像素位数拉到24,发现整个图像大小变成了一半,而蜜蜂竟然变成了两只,不过颜色变化了。
在这里插入图片描述
这里原因就是像素位×2后,原来的数据只够表示整张图一半的大小了,所以图像会变成一半,下面一半变成了空像素,就是一开始我们熟悉的粉色初始色块。同时蜜蜂也会因为像素位变大而将原来表示两格的色块压缩到一格,所以变成了两只像素更低(更模糊)的蜜蜂,并且颜色也由于合成变成了粉紫色。

问题5

在这里插入图片描述
这个问题好像并没有说明需要完成的效果,所以可以随意修改颜色后直接提交。

C1认证问题

问题1:先通过二进制的0和1「画」出你喜欢的图形

在这里插入图片描述
这里我们随便画一个图形,我选择了椭圆。

问题2:再试着「画」出自己的名字或昵称

在这里插入图片描述
也是根据自己的名字来调整黑白色块,我这里画了苹果的苹,不过这里有需要提醒的就是如果需要写的字是有像苹果的苹这样有位于中间的竖线的,宽度最好调整为单数,否则就会像我这样需要两行黑色来表示这个竖线,要不然就不对称了,这样看起来比较奇怪,不过我懒得再调整啦哈哈哈!

问题3:理解用计算机二进制存储图片文件的底层原理

使用二进制、八进制、十六进制来表示颜色,像素位越高能表示的颜色越多,为2n个(n是每像素位数值)。用1代表相应像素位的颜色有,0表示没有,但是据我的研究,所有颜色都有的时候,即1是白色,而0是黑色,这个和光学原理相似,所有种类的光叠加为白色,而不是和美术原理所有颜色叠加是黑色一样,这边需要注意。

任务二:掌握进制编辑器

问题1:修改文本内容

在这里插入图片描述
首先我们用txt文本文件编辑一个内容为:csdn的文件,然后用进制编辑器(免费版Hex Editor Neo打开。
打开后我们可以发现对应字母的数字就是ASCII码,那么根据ASCII码表我们可以随意修改文本。
在这里插入图片描述

问题2:修改图片内容

在这里插入图片描述
在这里插入图片描述
首先我们截一张8×8的纯白bng格式的图片,将其用进制编辑器打开,然后修改一个00为11。
在这里插入图片描述
在这里插入图片描述
可以看到图片变成了黑线。
接下来我们根据白色图片创造一张8×8的纯黑png图片,如下:
在这里插入图片描述

拓展:修改游戏存档

问题1:用二进制编辑器修改《植物大战僵尸》的存档文件,能跳到指定关卡,例如 「5-1」

首先我们下载题目需要用到的植物大战僵尸 提取码:dudl。
打开游戏后我们创建两个存档,将其中一个存档打到第二关,这样可以看出两个存档底层编码文件的区别,从而找到要修改的位置。
随后我们打开我的电脑,进入C盘,点击【查看】将隐藏的项目勾选上以此显示出隐藏的文件夹,找到【ProgramData】-【PopCap Games】-【PlantsVsZombies】-【userdata】中的user1.dat和user2.dat文件,分别对应刚刚创建的两个存档。
将它们复制到桌面,并用进制编辑器打开,显示如下:
在这里插入图片描述
在这里插入图片描述
可以发现不同的数据就在于第一行第五个的01和02,刚好对应我们的关卡1-1和1-2,我们先将user1.dat文件的01改成09,并且覆盖掉原文件夹里的存档,进入游戏后可以看到存档已经变成1-9:
在这里插入图片描述
再试试改大一些,改成41(因为游戏关卡第一关是1-1,所以5-1对应的是第41关),对应的十六进制就是29,再覆盖掉原文件夹在进入游戏就是5-1啦:
在这里插入图片描述

问题2:用二进制编辑器修改《植物大战僵尸》的存档文件,让游戏账户有指定数量的金币

我尝试后发现0000000a-08到0b这四格是控制金币的,在一一尝试后发现,这8位数字从第一个不为0的数开始计算到最后一位不为0的数,比如下面的1、101、10101、1000001,转化为十进制后,再×10就是游戏内的金币数。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

问题3:通过二进制编辑器修改存档文件,能解锁《植物大战僵尸》的「玩玩小游戏」、「解谜模式」、「生存模式」选项

在这里插入图片描述
在这里插入图片描述
这边我尝试了只需要改变0000000a-0c到0f任意一个数字为01,就可以解锁所有模式。

自测

题目1:110101010001转十六进制是多少? 有什么最快的计算方法能得到结果?

(110101010001)2=(d51)16
将二进制数分为4个一组,最前面少位的补0,转化为十六进制数再组合起来就是结果。

题目2:101011.101011对应的十进制数是多少?

(101011.101011)2=(43.671875)10

题目3:常见的音频编码格式有哪些?

MP3 AAC WMA WAV ATRAC PLAC OGG APE

题目4:常见的视频编码格式有哪些?

H264 MPEG-4 VC-1 MPEG-2

题目5:一个尺寸8×8大小的png全黑图片前四个字节的十六进制值是什么?

89 50 4e 47

题目6:UTF8三字节的编码方式为∶1110xxxx 10xxxx 10xxxx,汉字【中】的Unicode编码十六进制值是0x4e2d,Unicode编码按三字节编码转换到十六进制的UTF8编码的计算过程是什么?

0x4e2d=(0100111000101101)2
将这个二进制数按顺序填入编码x的位置即可。

题目7:如果要提供一个实时的流媒体服务器,除了ffm peg,还需要使用哪个组件?

ffserver