浮点数的存储,判断大小端,汇编指令,if和swith

//浮点数在计算机中过的存储,用指针,结构体判断大小端,汇编指令,if和switch的区别

一.浮点数在计算机中过的存储

浮点数在计算机中,第一位为符号位(0表示正数,反之为负数),之后的八位为指数位,之后的23位为位数

以12.5为例:

12.5的二进制为:1100.1,用浮点数表示为1.1001*2^3  在计算机中存储为 0 1000 0010 01001000 00000000 0000000

(二进制整数在前面补零对数值大小没有影响,小数在后面补零对数值大小没有影响,这一点与十进制数相同)

注意:①指数位的表示:需要指数加127,然后用二进制表示

②改数的十六进制为0x4148,但在计算机中为0x4841,因为计算机中小端存放 

③指数的取值为-126-127

二.用指针判断大小端

小端存放:低地址存放低数据

大段存放:低地址存放高数据

1.用指针判断大小端程序实现:

将a的地址强转为(float*)类型,这样b所能指向的对象即a的第一个字节,这样再对b进行解引用,根据*b的值判断大小端,如果*b==0,说明在内存中,高位在低地址,低位在高地址,为大端存放,反之为小端存放
(解引用:*b的作用是引用用指针指向的变量,引用其实就是引用该变量的地址,解引用就是把地址对应的东西解出来,即变量的值)
2.用结构体判断大小端
(注意:以上以32位计算机为例)
三.汇编指令
汇编指令是汇编语言中使用的一些操作符和助记符,用于告诉汇编程序如何进行汇编的指令,它既不控制机器的操作也不被汇编成机器代码,只能为汇编程序所识别并指导汇编如何进行。
mov 传送字或字节
add 加法
eax 累加(accumulator)器,很多加法乘法指令的缺省寄存器
push 把字压入堆栈
call 调用子程序
cmp 比较两个数的大小,compare
dword ptr 表示这个类型可以保证放下一个dword,并可以放下一个指针
ecx 是计数器(counter), 是重复(REP)前缀指令和LOOP指令的内定计数器。
ebx 是"基地址"(base)寄存器, 在内存寻址时存放基地址。
esi /edi 分别叫做"源/目标索引寄存器"(source/destination index),因为在很多字符串操作指令中, DS:ESI指向源串,而ES:EDI指向目标串。
四.if和switch的区别
1.if;
格式:if(表达式)语句1;
括号内的表达式为真时,则执行语句1;
2.switch;
格式:switch(变量){case语句;break;}
循环变量,根据变量的值执行case语句;
3.if和switch的区别
if语句每个都执行,除非第一个就为真,switch是选择性执行,相对来说效率更高;switch使用查找表的方式决定了case的条件必须是一个连续的常量,而if则更灵活。





















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值