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

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

教材学习内容总结

信息=位+上下文

  • 无符号编码:基于传统的二进制表示法,表示大于等于零的数字
  • 补码编码:表示有符号数证书最常见的方式,可表示或正或负的数字
  • 浮点数编码:表示实数的科学计数法的以二为基数的版本
  • 溢出:计算机的表示法是用有限数量的位来对一个数字编码,当结果太大以至不能表示时,某些运算就会溢出

信息的存储

  • 1个字节为8位,大多数计算机将1个字节作为最小的可寻址的存储器单位。
  • 机器级程序将存储器视为一个非常大的字节数组,称为虚拟存储器。存储器的每个字节都由一个唯一的数字来标识,称为地址。所有地址的集合称为地址空间。

  • 字长:指明证书和指针数据的标称大小。决定最重要的系统参数就是虚拟地址空间的最大大小。对于一个w位的机器而言,虚拟地址的范围为0~2w-1,程序最多访问2w个字节。

字节排列规则

  • 小端法(little endian):最低有效字节排列在最前面
  • 大端法 (big endian):最高有效字节排列在最前面
  • 网络应用程序的代码编写必须遵守已建立的关于字节顺序的规则,以确保发送方机器将它的内部表示转换成网络的标准,而接收方机器则将网络标准转换为它的内部表示。

字符串

  • C语言中的字符串被编码为一个以null(其值为0)字符结尾的字符数组。每个字符都由某个标准编码来表示,最常见的是ASCII字符码。
  • 不同的机器类型使用不同的且不兼容的指令和编码方式。即使处理器完全一样,但是运行不同操作系统,也会有不同的编码规则,因此二进制代码是不兼容的。

十进制( Decimal)与R进制的转换

  • R个基本符号(0,1,2.R-1)
  • R称为基数(base),它代表每个数位上可以使用的不同数字符号个数。R称为第位上的权
  • 逢R进一

二进制与八进制/十六进制的转换

  • 二进制转化为八进制:从低位开始,三位二进制码表示的十进制数作为一位八进制码,高位不足时补0。
  • 二进制转化为十六进制:从低位开始,四位二进制码表示的十进制数作为一位十六进制码,高位不足时补0。
  • 八进制/十六进制转化为二进制时,只需要将每一位八进制码/十六进制码还原为三位/四位二进制码即可。

位级运算

  • 位向量:固定长度位w、由0和1组成的串
  • 位的高低:从左到右,从高到低
  • 运算:
    &(按位与)
    | (按位或)
    ~(按位取反)
    ^(按位异或)

逻辑运算

  &&(逻辑与)
  ||(逻辑或)
  !(逻辑非)
  • 非零参数都表示TRUE,0表示FALSE
移位运算
  • 逻辑右移:右移N位,就在高位补N个0
  • 算术右移:右移N位,就补N个最高位的值

有符号数与无符号数之间的转换

  • 处理同样字长的有符号数与无符号数之间相互转换的一般规则:数值可能会改变,但是位模式不变。
    (1)有符号数→无符号数
    非负数——保持不变

负数——转换成大正数
(2)无符号数→有符号数
以2^*(w-1)为界限:

小于它——保持不变

大于它——转换为负数值
[0,2(w-1))范围内的数字,无符号和补码表示相同;范围之外的,需要加上或者减去2w

运算时若同时存在有符号数和无符号数,会隐式的将有符号数强制类型转换为无符号数,并且假设这两个数都是非负的。

无符号数运算

  • 加法:

  • 乘法:

  • 除法:向下取整

补码运算

  • 加法:

  • 乘法:

  • 除法:算术右移

浮点数运算

IEEE浮点表示:V=(-1)s x M x 2E(符号 s,尾数 M,阶码 E)
向偶舍入(默认):将数字向上或向下舍入,是的结果的最低有效数字为偶数。能用于二进制小数。
向零舍入:把整数向下舍入,负数向上舍入。
向下舍入:正数和负数都向下舍入。
向上舍入:正数和负数都向上舍入。

代码托管

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

本周主要是理论知识的学习,进一步了解C中信息的存储、转换和运算规则。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 80/80 1/1 5/5
第二周 0/80 1/2 4/9
  • 计划学习时间:9小时

  • 实际学习时间:4小时

posted on 2018-09-30 14:39  月半月半白勺  阅读(132)  评论(0编辑  收藏  举报

导航