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

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

教材学习内容总结

信息=位+上下文

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

    信息的存储

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

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

    字节排列规则

  • 小端法(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小时

原文地址:https://www.cnblogs.com/cloud795/p/9729492.html

时间: 2024-10-13 05:35:19

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

信息安全系统设计基础第二周学习总结(一)

Linux下C语言编程基础实验报告 学习任务 1. 熟悉Linux系统下的开发环境 2. 熟悉vi的基本操作 3. 熟悉gcc编译器的基本原理 4. 熟练使用gcc编译器的常用选项 5 .熟练使用gdb调试技术 6. 熟悉makefile基本原理及语法规范 7. 掌握静态库和动态库的生成 学习内容 1. 快捷键 2. vim 3. gcc 4. gdb 5. make与makefile 学习过程记录 第一部分 第一讲第一节:移动光标 H左.j下.k上.l右 第一讲第二节:VIM的进入和退出 <E

20135304刘世鹏——信息安全系统设计基础第二周学习总结

第一节.Linux基础 1.Linux命令 Linux中命令格式为:command [options] [arguments] 选项:是调整命令执行行为的开关,选项不同决定了命令的显示结果不同 参数:决定了命令的显示结果不同 例如:ls .中.为参数:ls -a中-a为选项 2.man命令 1 Executable programs or shell commands(普通的Linux命令) 2 System calls (系统调用,操作系统的提供的服务接口) 3 Library calls (

20135218 信息安全系统设计基础第二周学习总结

深入理解计算机系 Linux基础 一.实验说明 环境登录  无需密码自动登录,系统用户名shiyanlou,密码shiyanlou 二.实验步骤 三种知识: 元知识:这门课程思考问题框架是什么?遇到老问题,它会怎样分析?遇到新问题,它会怎样分析? 硬知识:这门课程的主要知识点是什么?适合用思维导图组织吗? 软知识:这门课程的哪些知识点需要哪些实践环节来强化理解和记忆? 1. Linux命令 Linux学习应用的一个特点是通过命令行进行使用. 登录Linux后,我们就可以在#或$符后面去输入命令,

20135220谈愈敏--信息安全系统设计基础第二周学习总结

<深入理解计算机系统>实验一 在我的理解中: 元知识:思考问题的能力 硬知识:可见的知识点 软知识:实践中的经验 后面的常用命令是老师上课中讲到的. 一边看提供的材料一边在实验楼里实践,我的实验顺序如下: vim编辑器实验1234 普通模式(Normal mode):在普通模式中,用的编辑器命令,比如移动光标,删除文本等等.这也是Vim启动后的默认模式. Vim强大的编辑能来自于其普通模式命令.普通模式命令往往需要一个操作符结尾.例如普通模式命令dd删除当前行,但是第一个"d&quo

信息安全系统设计基础第二周学习总结——20135308

本周,我学习了vim的使用方法. VIM是一个非常好的文本编辑器,很多专业程序员使用VIM编辑代码,VI来说,一开始就需要相当大的技能,但一旦掌握这些技能,则你将会越来越熟练,这跟五笔打字很类似.我们建议通过实践练习来学习具体来说通过VIMTUTOR来学习.只要在命令行中输入vimtutor,然后跟着教程练习就可以了. 大写“K”可以用来查找函数的帮助信息:查看 man page,命令模式下,将光标放在函数名上,按"K"可以直接察看 man page. 几个设置 :set nu 显示行

信息安全系统设计基础第二周学习总结

学习目标 1. 熟悉Linux系统下的开发环境    2. 熟悉vi的基本操作    3. 熟悉gcc编译器的基本原理    4. 熟练使用gcc编译器的常用选项    5 .熟练使用gdb调试技术    6. 熟悉makefile基本原理及语法规范    7. 掌握静态库和动态库的生成 内容一:vim编辑器的使用 1.vim编辑器的三种模式 Ⅰ正常模式:(按Esc或Ctrl+[进入) 左下角显示文件名或为空 Ⅱ插入模式:(按i键进入) 左下角显示--INSERT-- Ⅲ可视模式:左下角显示—V

20135234马启扬-——信息安全系统设计基础第二周学习总结

Linux基础 1.Linux命令 command [options] [arguments] //中括号代表是可选的,即有些命令不需要选项也不需要参数 选项(options)或参数(arguments) 选项是调整命令执行行为的开关,选项不同决定了命令的显示结果不同. 参数是指命令的作用对象. 2. man命令 man是manul的缩写 帮助文档 3.cheat 命令 cheat命令是在GNU通用公共许可证下,为Linux命令行用户发行的交互式备忘单应用程序. 它提供显示Linux命令使用案例

20135337——信息安全系统设计基础第二周学习总结

知识点:一.Linux基础    这节实验的核心内容:基于搜索——学会使用:man.cheat.man-k.find(找到路径).locate(神速般的find).whereis.which(使用的命令工具装在哪儿).grep(全文搜索.正则表达式).二.VIM1.vi有三种模式:命令行模式.插入模式.底行模式. a)vim教程:比如:d 删除操作符:-w 单词(如:dw 从光标出删除至下一个单词末尾(不含第一个字符)).b)移动光标: [[ 转到上一个位于第一列的"{" ]] 转到下

信息安全系统设计基础第二周学习总结(20135213)

1.教材第一章,第七章学习:阅读并消化教材内容(有部分考试内容) 2.<嵌入式Linux应用程序开发标准教程>第三章3.1-3.5的学习(本周大部分考试内容都从这出,特别是与教材重复内容) 3.完成实验并发Blog 练习vimtutuor 至少一遍 使用vim 输入以下代码,联系使用“K”查找帮助文档: 练习gcc编译运行代码. 练习gdb调试代码 . 把上述代码中除了main函数外的代码制作成一个静态库math.a和一个共享库math.so. 编写makefile,让代码编译,上述静态库和共

LINUX信息安全系统设计基础第二周学习总结

1.Terminal(终端) Linux 系统还提供了一个叫做终端模拟器的程序(Terminal),下面几个比较常见的终端模拟器,例如 gnome-terminal,kconsole,xterm,rxvt,kvt,nxterm 和 eterm,目前我们的实验中的终端程序是 xfce  桌面环境自带的 xfce-terminal.不过要注意的是这里所说的终端(Terminal)和控制台(Console)是有区别的. 在物理机系统上你 [Tab] 使用Tab键来进行命令补全,Tab键一般键盘是在字母