• 20145221 《信息安全系统设计基础》第4周学习总结


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

    内容导读

    • 在第3周我们学习了信息的表示和处理,其实有很多知识我们在之前的课程中都已接触过:《计算机导论》、《HDL数字逻辑电路》、《C语言程序设计》、《Java程序设计》、《汇编语言程序设计》。只不过不是很系统,也不是很深刻,只知道是什么不知道为什么。通过这一章节的学习,从操作系统出发,了解了内存中的存储读取机制,以及各种标准对信息的表示与要求,更深层次的了解到了信息在计算机中的表示。
    • 而这次第4周利用十一假期时间拿课后练习题试试手

    教材课后习题小试牛刀

    位级整数编码规则

    • 假设
      • 整数用补码形式表示
      • 有符号数的右移是算术右移
      • 数据类型int是w位长的。对于某些题目,会给定w的值,但是在其他情况下,只要w是8的整数倍,你的代码应该能工作。你可以用sizeof(int)<<3来计算w
    • 禁止使用
      • 条件语句(if或者? :)、循环、分支语句、函数调用和宏调用
      • 除法、模运算和乘法
      • 相对比较运算(<、>、<=和>=)
    • 允许的运算
      • 所有的位级和逻辑运算
      • 左移和右移,但是位移的数量只能在0和w-1之间
      • 加法和减法
      • 相等(==)和不相等(!=)测试
      • 整型常数INT_MININT_MAX
      • 强制类型转换,无论是显示的还是隐式的

    课后习题2.65

    • 题目要求
      • 根据英语提示可知,返回1当x包含偶数个1;否则为0;
      • 遵循位级整数编码规则,代码最多只能包含 12个算术运算、位运算和逻辑运算。
    • 题目思路:
      • 首先最先想到的是每一位一个一个异或,最后结果为1则包含奇数个1,反之包含偶数个1。但根据题目要求2,显然无法满足要求,一共有32位,照此肯定不止12个位运算,另外32数字较大,最好用循环实现,但级整数编码规则又要求不可有循环语句,故而这条思路应该果断放弃。
      • 在《HDL数字逻辑设计》这门课上,有一题,如果要求一个8位宽线路的通路个数是奇数还是偶数,应该怎么求。一种是用归约亦或运算符,还有一种是老师提及的一种思路,类似折半的思想。(此处已默认x为32位)即取x,将其右移16位后与原x按位异或,这样得到的新x右边16位就是原x左边16位和原x右边16位按位异或的结果,接下来右移8位……,直至最后1位。我们取值要取最后x值的最低位。
      • 根据题目要求,输出应与我们的异或结果相反,加上非逻辑预算就行。
    • 代码实现:
    • 运行截图:

    课后习题2.69

    • 题目要求
      • 根据题目要求,可知这题是一个求移位的运算,移位大小在该区间内:[0,32)
      • 也要遵循级整数编码规则,并注意n=0的情况
    • 题目思路
      • 首先C语言中有移位运算的操作符,其中右移符号是>>
      • 输入输出最好直接以16进制显示,这样当移位的位数为4的整数倍时,可以直观的检查结果的正确性
      • 移出的数字可以通过反向移w-n位的结果与右移结果相“位或”得到
      • 总体来说实现思路是较为直观的
    • 代码实现:
    • 运行截图:

    代码统计&托管截图

    其他(感悟、思考等,可选)

    • 这周因为老师没有额外布置学习任务,所以自己利用假期时间找了找课后的几道习题练习练习,也是加深对理论知识的理解,对位操作的认识。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 200/200 2/2 20/20 学习了Linux常用命令
    第二周 79/279 1/3 30/50 了解vim,gcc,gdb基本操作
    第三周 182/461 1/4 25/75 更深层次了解信息处理
    第四周 36/497 2/6 3/78 第二章知识简单的运用

    参考资料

  • 相关阅读:
    HTML知识点链接
    Apache和PHP的安装
    MySql的安装
    MY_FIRSH_MODULE
    【PAT甲级】1053 Path of Equal Weight (30 分)(DFS)
    Atcoder Grand Contest 039B(思维,BFS)
    Codeforces Round #589 (Div. 2)E(组合数,容斥原理,更高复杂度做法为DP)
    Codeforces Round #589 (Div. 2)D(思维,构造)
    【PAT甲级】1052 Linked List Sorting (25 分)
    【PAT甲级】1051 Pop Sequence (25 分)(栈的模拟)
  • 原文地址:https://www.cnblogs.com/20145221GQ/p/5965523.html
Copyright © 2020-2023  润新知