20145315 《信息安全系统设计基础》第3周学习总结

20145315 《信息安全系统设计基础》第3周学习总结

教材学习内容总结

  • 对于逻辑运算来说,如果对第一个参数求值就能确定表达式结果,那么逻辑运算符就不会对第二个数求值。

移位

  • 移位数量应小于字长。
  • 加减法优先级比移位<<符号要高。
  • 对于无符号数,右移必须是逻辑的;对于有符号数,逻辑右移和算数(高位补最高位的值)右移两种都可以。

整数

  • long int 取值范围与机器相关 8和4
  • 强制类型转换的结果保持位底层不变,数值可能改变。
  • 有符号数和无符号数之间的转换
  • 补码表示的负数如果转换为无符号数会加上2的W次方,变成更大的正数
  • 正数会保持不变
  • 无符号数转换为有符号数则是小数不变,大数变负。

C语言中

-如果同时出现有符号数和无符号数,默认转换为无符号数。

数的扩展

  • 零扩展
  • 符号扩展
  • 当short转换为unsigned时,我们要先改变大小,再完成有符号数到无符号数的转变
  • (unsigned)(unsigned short) sx

截断数字

  • 丢弃高位,对于无符号数相当于x mod 2^k
  • 截断一个数字可能会改变其值,这也是值溢出的一种形式。

整数运算

  • 整数加法要考虑溢出
  • 补码加法

补码

  • 最常见的有符号数的计算机表示方式是补码表示形式。

  • 同无符号表示一样,在可表示的取值范围内的每个数字都有一个唯一的w 位的补码编码。

  • 每个介于-2w-1 和2w-1-1 之间的整数都有一个唯一的长度为w的位向量二进制表示。

浮点数

  • 符号(sign) s 决定这个数是负数(s=1)还是正数(s=0),而对于数值0 的符号位解释作为特殊情况处理。

  • 尾数(significand) M 是一个二进制小数,它的范围是1 ~ 2-ε,或者是0 ~ 1-ε。

  • 阶码(exponent) E 的作用是对浮点数加权,这个权重是2 的E 次幂(可能是负数)。将浮点数的位表示划分为三个字段,分别对这些值进行编码:

  • 一个单独的符号位s 直接编码符号s。

  • k 位的阶码字段exp = ek-1…e1e0 编码阶码E。

  • n 位小数字段frac = fn-1…f1 f0 编码尾数M,但是编码出来的值也依赖于阶码字段的值是否等于0。

浮点运算

  • IEEE 标准指定了一个简单的规则,用来确定诸如加法和乘法这样的算术运算的结果。
  • 把浮点值x 和y 看成实数,而某个运算⊙定义在实数上,计算将产生Round (x ⊙ y),这是对实际运算的精确结果进行舍入后的结果。

布尔代数

  • ~ 对应于逻辑运算NOT,在命题逻辑中用符号﹁表示。
  • 当P不是真的时候,我们就说﹁ P 是真的,反之亦然。相应地,当P 等于0 时,~P 等于1,反之亦然。
  • 布尔运算& 对应于逻辑运算AND,在命题逻辑中用符号∧表示。当P 和Q 都为真时,我们说P ∧ Q 为真。相应地,只有当p =1 且q =1 时,p & q 才等于1。布尔运算|对应于逻辑运算OR,在命题逻辑中用符号∨表示。
  • 当P 或者Q 为真时,我们说P ∨ Q 成立。相应地,当p =1 或者q =1 时,p | q 等于1。
  • 布尔运算^ 对应于逻辑运算异或。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 20/200 1/2 20/20
第二周 30/200 2/4 18/38
第三周 50/200 1/4 22/60
第四周 0/1300 0/9 0/90

参考资料

posted @ 2016-09-28 22:54  君知らない  阅读(132)  评论(1编辑  收藏  举报