20145228 《信息安全系统设计基础》第三周学习总结
教材学习内容总结
有符号整数、无符号整数、浮点数的表示
1.整型数据类型
32位机器和64位机器对于同一数据类型的典型取值范围是有所不同的 。 64位机器用8个字节表示;32位机器用4个字节表示
典型取值范围中,取值范围不对称——负数的范围比整数的范围大1
2.无符号数的编码
0-(2^w)-1中的每一个整数和长度为w的位向量是一一对应的
3.补码编码(有符号数的编码)
正数的补码=原码
负数的补码=原码各位取反再加1
负数的补码=原码各位取反再加1
大多数情况下用补码来表示有符号数,并且具有的是典型的取值范围
有符号数的其他表示方法:原码、反码
4.有符号数和无符号数的转换
转换原则:底层的位保持不变
无————>有:U2Tw函数(*w表示数据类型的位数)
以2的w-1次方为界限:小于它——保持不变;大于它——转换为负数值
有————>无:T2Uw函数
非负数——保持不变;负数——转换成大正数
补码的重要性
•能够统一+0和-0的表示
•采用原码表示,+0的二进制表示形式为0 000 0000,而-0的二进制表示形式为1 000 0000;
•采用反码表示,+0的二进制表示形式为0 000 0000,而-0的二进制表示形式为1 111 1111;
•采用补码表示,+0的二进制表示形式为0 000 0000,而-0的二进制表示形式为1 111 1111+1=1 0000 0000,因为计算机会进行截断,只取低8位,所以-0的补码表示形式为0000 0000。
•补码的表示范围比原码和反码表示的范围都要大。用补码能够表示的范围为-128127,0127分别用0000000001111111来表示,而-127-1则用10000001~11111111来表示,多出的10000000则用来表示-128。
•对于有符号整数的运算能够把符号位同数值位为一起处理
学习中的问题和解决过程
掩码是位运算的重要应用,对特定位可以置一,可以清零
补码的利用寄存器的长度是固定的特性简化数学运算。比如钟表,12-1 等价于 12 + 11,利用补码可以把数学运算统一成加法,只要一个加法器就可以实现所有的数学运算。
对“信息=位+上下文”的理解
数值可能改变,但是位模式不变
无符号二进制数 "1001" 是9, 转化为有符号数还是“1001”,但最高位变成-7
本周代码托管
感悟
这周开始了较多的代码编译,只是按照书上的代码敲了几次,但对代码的具体内容还不是很清楚,只知道大概。我认为刚开始还是多敲代码,才能熟练运用。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 4000行 | 25篇 | 350小时 | |
第一周 | 0/ 0 | 2/2 | 20/30 | |
第二周 | 100/100 | 1/3 | 20/50 | |
第三周 | 300/400 | 1/4 | 20/70 |