糖醋排骨bat的c语言学习 D1

1.float 浮点数的存储
单精度存储中都分为三个部分:
(1)符号位:0代表正,1代表为负
(2)指数位:用于存储科学计数法中的指数数据,并且采用移位存储
(3)尾数部分:尾数部分

以12.5为例来看一下如何实现浮点数的存储
(1)将12.5转化成二进制数
整数部分                   小数部分0.5*2=1.0
在这里插入图片描述

12.5转化成二进制1100.1   写成科学计数法 1.1001*2^3,在这里面,1001 属于尾数,3 属于指数。那只需要在指数部位存入 3,尾数部位存入 1001 就好了。我们由第一个图可以看出指数有八位,而尾数有23位,我们应该如何表示呢?
指数:值有可能是正也可能是负,不需要在指数的八位中存放符号位,让指数加上 127 的值(二进制)存放的这 8 位里面即可。指数位 1000 0010 (3+127=130)
尾数:1001 0000 0000 000 0000 000 后面补0 补到23位
在这里插入图片描述
当我们把每一位都填好后发现,转换位 16 进制之后为:
0x414800.而在我们计算机底下存储的是 0x004841 这是为什么呢?
这就要提到大端和小端的问题了
小端:低地址放低数据:PC Inter
大端:低地址放高数据:手机,网络

2. printf(“%d”,printf(“%d”,printf(“steadily”))); 将输出什么?为何这样输出?
(1)输出 steadily81
(2)由于printf有返回值,返回值是输出的长度
第一步:要执行第一个printf的过程要调用第二个,执行第二个printf的过程中发现要调用第三个。
第二步:第三个printf输出steadily,返回值为8,返回值给第二个printf打印。
第三步:第二个printf输出8,返回值为1,返回值给第一个printf打印。
第四步:第一个printf输出1,所以最后输出为steadily81。

3.如何从.cpp---->.exe 分为几步?这几步分别做了什么?
(1)分为 预编译,编译, 汇编 ,链接四步
(2)预编译:将.cpp文件转化成.i文件。预处理阶段,在正式的编译阶段之前进行。预处理阶段将根据已放置的文件中的预处理指令来修改源文件的内容。
a.宏替换

#define SIZE 10
int main()
{
   int a=SIZE;—>换成int a=10
}

b.头文件的引入 ,覆盖
c.源代码中的注释替换成空格,不是删除
编译:将.i文件转换成.s文件。编译程序所要做的工作就是通过词法分析和语法分析,在确认所有指令都是符合语法规则之后,将其翻译成等价的中间代码表示或汇编代码。语法检查,语义分析,检查
汇编:将.s文件转换成.o文件。汇编实际上指把汇编语言代码翻译成目标机器指令的过程 .s存放汇编代码 目标文件.obj/.o
链接:将.o文件转换成可执行程序。链接过程是由汇编程序生成的目标文件并不能立即就被执行,其中可能还有许多没有解决的问题。需要经链接程序的处理方能得以解决。链接程序的主要工作就是将有关的目标文件彼此相连接,也即将在一个文件中引用的符号同该符号在另外一个文件中的定义连接起来,使得所有的这些目标文件成为一个能够按操作系统装入执行的统一整体。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值