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

本文总结了《信息安全系统设计基础》课程的第二周学习内容,涵盖了无符号数、补码、浮点数等数字表示法,C语言类型转换,浮点数存储,以及位运算与逻辑运算的区别。同时,探讨了教材中的问题,如补码后的寄存器含义、浮点数存储方式和size_t数据类型的作用。
摘要由CSDN通过智能技术生成

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尾数总尾数
短实数(单精度数)182332
长实数(双精度数)1115264
临时实数1156480
  • 问题3:教材第31页中出现了一个之前没有接触过的数据类型“size_t”,书中的解释是“它表示数据结构大小的首选数据类型”,但我还是不理解这里的“数据结构大小”是什么意思。
  • 解决:根据对代码的分析,show_bytes函数用于打印每个字节,size_t 类型变量i为循环控制变量,最大值为某类型变量所占字节数,所以我推测size_t应该是个类似int类型的变量,那么它与整型的关系是什么呢?通过搜索资料,我发现“size_t的取值range是目标平台下最大可能的数组尺寸”所以,它能够“跨平台”。
    不同平台的size_t会用不同的类型实现,使用size_t而非int或unsigned可以写出扩展行更好的代码。”

上周错题总结

  1. 1272589-20190929184943226-1223338976.png

用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

转载于:https://www.cnblogs.com/wangzihong0213/p/11609463.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值