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


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

    教材知识点总结

    • 无符号数、补码、浮点数是我们研究的最重要的三种数字表示。其实注意的是,补码编码是表示有符号整数最常见的方法,在计算机中负数都是用补码的形式来存储的;浮点数以二为基数。
    • 由于表示的精度有限,浮点运算是不可结合的
    • C语言允许在各种不同数据类型之间做强制类型转换。但要注意,将负数转换为无符号数可能会得到0,且强制类型转换的结果保持位值不变,只是改变了解释这些位的方式。
    • 零扩展和符号扩展:零扩展应用于无符号整数,符号扩展应用于有符号整数。
    • 截断数字:与扩展相反,截断是用来减少一个数字的位数。截断时,抛弃高位。对于一个x位的数字,要截断为y位,就抛弃了高x-y位。也就是相当于xmod2的y次方。
    • 区分位运算和逻辑运算的区别与运算方法。
    • 逻辑右移:>>>,算数右移:>>
    • 无符号数和补码的乘法一样,除法都是进行移位。无符号数的除法移位后补0,补码的除法移位后补1。

    教材学习中的问题和解决办法

    • 问题1:第48页的练习题,在看反汇编列表的时候,不理解16进制补码后的$,%rsp,%rax,%rid什么意思
    • 解决:$表示偏移地址,rsp,rax,rid是指针寄存器
    • 问题2:浮点数在计算机中存储方式是怎样的?
    • 解决:
    现代计算机中,浮点数一般采用IEEE制定的国际标准,形式如下:
    
    符号位s 阶码e 尾数 总尾数
    短实数(单精度数) 1 8 23 32
    长实数(双精度数) 1 11 52 64
    临时实数 1 15 64 80
    • 问题3:教材第31页中出现了一个之前没有接触过的数据类型“size_t”,书中的解释是“它表示数据结构大小的首选数据类型”,但我还是不理解这里的“数据结构大小”是什么意思。
    • 解决:根据对代码的分析,show_bytes函数用于打印每个字节,size_t 类型变量i为循环控制变量,最大值为某类型变量所占字节数,所以我推测size_t应该是个类似int类型的变量,那么它与整型的关系是什么呢?通过搜索资料,我发现“size_t的取值range是目标平台下最大可能的数组尺寸”所以,它能够“跨平台”。
      不同平台的size_t会用不同的类型实现,使用size_t而非int或unsigned可以写出扩展行更好的代码。”

    上周错题总结

    用gcc hello.c -o hello 编译hello.c,hello中不存在()节

    A..debug
    B..text
    C..line
    D..rodata

    正确答案: A C

    13 .为了构造可执行文件,连接器的主要任务有()

    A.生成静态库
    B.符号解析
    C.生成共库
    D.重定位

    正确答案: B D

  • 相关阅读:
    NSCalendar
    保护连接字符串
    System.Runtime.InteropServices.COMException: 拒绝访问.
    Windows 7 初体验
    Sql语句收藏
    因为WMI配置,无法执行Sql Server 系统配置检查器的解决办法
    url带中文参数显示乱码的问题
    想建立一个好的团队,有意者加我
    庆祝一下,早上的帖子上了24小时排行第三
    C/S结构和b/s结构的比较
  • 原文地址:https://www.cnblogs.com/wangzihong0213/p/11609463.html
Copyright © 2020-2023  润新知