2019-2020-1 20175227 《信息安全系统设计基础》第二周学习总结
2019-2020-1 20175227 《信息安全系统设计基础》第二周学习总结
教材学习内容总结
-
二进制在计算机中的重要地位
- 二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。计算机中的二进制则是一个非常微小的开关,用“开”来表示1,“关”来表示0。
- 三种数字表示:
- 无符号编码:基于传统的二进制表示法,表示非负数。
- 补码编码:表示有符号整数的最常见的方式。
- 浮点数编码:表示实数的科学计数法的以2为基数的版本。
- 信息存储:
- 字长
- 机器级程序将存储器视为一个非常大的字节数组,称为虚拟存储器。存储器的每个字节都能由唯一的数字来标识,称为地址。字长用来指明整数和指针数据的标称大小,虚拟地址空间的大小由字长决定,对于一个字长为w位的机器而言,虚拟地址的范围为0-2^w-1。
- 寻址和字节顺序
- 对于跨越多字节的程序对象,必须建立两个规则:
- 对象的地址是什么
- 在存储器中这些字节如何排列
- 对于跨越多字节的程序对象,必须建立两个规则:
- 大端法&小端法:
- 最低有效字节在最前面的方式称为小端法
- 最高有效字节在最前面的方式称为大端法。
- 大多数Intel兼容机都只用小端模式;许多较新的微处理器是双端法,两种方法均可配置。
- C语言中字符串被编码为一个null(其值为0)字符结尾的字符数组。每个字符都由某个标准编码来表示,最常见的是ASCII字符码
- 字长
-
布尔代数
- 通过布尔代数进行集合运算可以获取到不同集合之间的交集、并集或补集,进行逻辑运算可以对不同集合进行与、或、非。
- 所有逻辑运算都可以用与、或、非表达(最大式、最小式),而与或非可以用“与非”或“或非”表达,所以,只要一个与非门,就可以完成所有的逻辑运算。
- C语言的特性:支持按位布尔运算,确定一个位级表达式的结果的最好方法就是将十六进制转化为二进制进行运算后再转回十六进制。
- 位级运算的一个常见用法就是实现掩码运算,表示从一个字中选出的位的集合。
-
有符号数和无符号数之间的转换
- 有符号数->无符号数:即负数转换为补码步骤——保持符号位不变,先将其余位取反,再加上1。
- 无符号数->有符号数:先看无符号数的最高比特位,如果是0,则可以直接转换;如果是1,则逐位取反加1。
教材学习中的问题和解决过程
- 问题1:按位运算^、|、&、~与逻辑运算&&、||、!区分不清
- 问题1解决方法:
按位运算,是将十六进制数转化为二进制数后进行逐位运算
1010 | 1101=1111
逻辑运算,即类集合间运算
如C语言中:if(i<=7&&i>2) x=6;
- 问题2:不理解十进制小数转换为二进制小数
- 问题2解决方法:由十进制整数转化为二进制整数时,我们采用除二取余法,即将该十进制数字除以二保留每次的余数并倒着排列,得到二进制数;将十进制小数转化为二进制小数时,我们反其道而行之,采用乘二取整法,将小数部分乘二,保留整数部分正序排列,得到二进制数。
代码调试中的问题和解决过程
无
代码托管
(statistics.sh脚本的运行结果截图)
上周考试错题总结
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 10000行 | 30篇 | 400小时 | |
第一周 | 76/76 | 1/1 | 8/8 | |
第二周 | 64/140 | 2/3 | 6/14 |