博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2018-2019-1 20165323 《信息安全系统设计基础》第二周学习总结
阅读量:7103 次
发布时间:2019-06-28

本文共 1432 字,大约阅读时间需要 4 分钟。

第二章学习总结

信息存储

1、机器级程序将内存视为一个非常大的字节数组,称为虚拟内存。内存的每个字节都由一个唯一的数字来标识,称为它的地址。所有可能地址的集合就称为虚拟地址空间。

2、每个程序对象可以简单地视为一个字节块,而程序本身就是一个字节序列。

字数据大小

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

2、32位字长限制虚拟地址空间为4千兆字节。
3、64位机器运行32位机器编译的程序

gcc -m32 prog.c

4、C语言允许多种关键字的顺序,下列声明都是一个意思:
unsigned long
unsigned long int
long unsigned
long unsigned int

寻址和字节顺序

1、在几乎所有的机器上,多字节对象被存储为连续的字节序列,对象的地址为所使用字节中最小的地址

2、小端法:最低有效字节在最前面的方式(高对高,低对低)
3、大端法:最高有效字节在最前面的方式(高对低,低对高)

表示字符串

1、C语言中的字符串被编码为一个以null(其值为0)字符结尾的字符数组。每个字符都由某个标准编码来表示,最常见的是ASCII字符码。

2、在使用ASCII码作为字符码的任何系统上都会得到相同的结果,与字节顺序和字大小规则无关
3、二进制代码是不兼容的
4、从机器的角度来看,程序仅仅只是字节序列

移位运算:

1、逻辑右移:右移N位,就在高位补N个0

2、算术右移:右移N位,就补N个最高位的值
3、在JAVA中,x>>k会将x算术右移k个位置,而x>>>k会对x做逻辑右移

数据表示

1、无符号数

B2U = 每一位的权值之和
2、有符号数
B2T = 最高有效位代表正负值+各位的权值

补码与无符号数的相互转换

当执行一个运算时,如果它的一个运算数是有符号的而另一个是无符号的,那么C语言会隐式地将有符号参数强制类型转换为无符号数,并假设这两个数都是非负的,来执行这个运算

数字的扩展

要将一个无符号数转换为一个更大的数据类型,我们只要简单地在表示的开头添加0,这种运算被称为零扩展

无符号数的零扩展和补码数的符号扩展

数字的截断:截断无符号数;截断补码数值

整数运算

1、无符号加法:

1296510-20181009213939079-2090708911.png

2、有符号数的加法

转换为两个数的补码相加

3、无符号乘法

将一个无符号数截断为w位等价于计算该值模2^w

4、补码加法

1296510-20181009204830674-1587426527.png

5、浮点数

IEEE浮点表示

用 V = (-1)s * M * 2 E

符号决定正负,M为二进制小数,E是阶码

C语言中的浮点数

double与float 双精度与单精度

int、float、double转化时有可能出现数据丢失的情况

6、当在int、float、和double格式之间进行强制类型转换时,程序改变数值和位模式的原则如下:
1、从int转换成float,数字不会溢出,但是可能被舍入
2、从int或float转换成double,因为double有更大的范围,也有更高的精度,所以能够保留精确的数值
3、从double转换成float,因为范围要小一些,所以值可能溢出成正无穷或负无穷。
4、从float或者double转换成int,值将会向零舍入

转载于:https://www.cnblogs.com/asd65360323/p/9733620.html

你可能感兴趣的文章
Android应用程序组件Content Provider的启动过程源代码分析(3)
查看>>
部署及配置ISCSI Target,Livemigration系列之三
查看>>
rundeck Web页面配置node节点
查看>>
Java程序员,笔试必读
查看>>
mySQL教程 第4章 数据查询
查看>>
linux 下 eclipse 开发环境的搭建
查看>>
android中DatePicker&TimePicker的应用
查看>>
JavaScript和C#通用gb2312和utf8编码解码函数简单实现
查看>>
在创建触发器时出现不能在 'inserted' 表和 'deleted' 表中使用 text、ntext 或 image 列...
查看>>
arguments,callee&caller测试
查看>>
sql server 2012序列号
查看>>
一步一步带你实现virtual dom(一)
查看>>
android:http
查看>>
详解JAVA实现支付宝接口编程
查看>>
HTTP 请求返回代码含义
查看>>
python+soket实现UDP协议的客户/服务端中文聊天程序
查看>>
android:使用BaseExpandableListAdapter实现可折叠的列表
查看>>
什么时候用存储过程
查看>>
【MongoDB for Java】Java操作MongoDB
查看>>
0c-42-ARC模式下如何兼容非ARC的类
查看>>