2019-2020-1 20175202 《信息安全系统设计基础》第二周学习总结

一、教材第二章“信息的表示和处理”学习内容总结
1.信息存储:
!计算机用几种不同的二进制表示形式来编码数值,二值信号能够很容易地被表示、存储和传输。
!多字节对象都被存储为连续的字节序列,对象的地址为所使用字节中最小的地址。
!排列表示一个对象的字节有两个通用的规则。某些机器选择在内存中按照从最低有效字节到最高有效字节的顺序存储对象,称为小端法;而另一些机器按照从最高有效字节到最低有效字节的顺序存储,称为大端法。

2.布尔代数:
!将逻辑值TRUEFALSE编码为二进制1和0,而设计出的一种代数。
!布尔函数中用运算符~&|^分别表示逻辑运算notANDOREXCLUSIVE-OR
!布尔运算可以扩展到位向量的运算。

3.C语言中的位级运算:
!布尔运算:C语言的特性使它支持按位布尔运算,布尔运算中的各种运算符能运用到任何“整形”的数据类型上。
!掩码运算:这里掩码是一个位模式,表示从一个字中出的位的集合。如x=0x89ABCDEF,其表达式将得到0x000000EF

4.C语言中的逻辑运算:
!逻辑运算符:||&&!,与ORANDNOT运算相对应。
!逻辑运算中如果对一个参数求值就能够确定表达式,就不会对第二个参数求值。

5.C语言中的移位运算:
!逻辑右移和算术右移。
!对于无符号数来说,右移必须是逻辑的。

6.无符号数编码:
0~2w-1之间都有一个w位的值编码。即无符号数编码的唯一性。

7.补码编码:
!我们需要表示符数,在计算机中表示有符号数,需要用补码形式。
!原理:将字的最高有效位解释位负权B2Tw,其权重位-2w-1。(详见课本P45)。
!补码编码也具有唯一性。

8.反码和原码是有符号数的另外两种标准表示方法。(详见课本P47)。

9.整数运算:
!无符号加法。
!补码加法。
!补码的非。
!无符号乘法。
!补码乘法。

10.浮点数:!IEEE浮点格式中数字的表示。

二、本周学习过程中遇到的问题及解决过程

1.问题:什么情况是指整数运算溢出,用什么办法来避免?
解决:目前理解是,若2^(w+1)> x+y ≥ 2^w,则表示整数运算溢出了。若运算数是无符号数,对于c = a + b,若c < a || c < b 则发生了溢出。
可用以下方法避免溢出:通过检测,若溢出将该合数减去2^w或找一个较大值进行模运算。

2.问题:C语言支持所有整形数据类型的有符号和无符号运算,且允许不同数据类型之间做强制类型转换。他到底是一种怎样的转换法则和方式呢?
解决:显式的强制转换:
```int tx,ty;
unsigned ux,uy;

           tx = (int) ux;
           uy = (unsigned) ty;```

          隐式的强制转换:
        ```int tx,ty;
           unsigned ux,uy;
       
           tx =  ux; /* Cast to signed */
           uy =  ty; /* Cast to unsigned */ ```
          当执行一个运算时,如果它的一个运算数式有有符号的而另一个式无符号的,那么C语言会隐式地将有参数强制类型转换位无符号数,并假设这两个数都是非负的,来执行这个运算。

三、代码托管

四、上周错题总结

五、学习进度条

猜你喜欢

转载自www.cnblogs.com/gexvyang/p/11607635.html