-1:0xFFFFFFFF
为什么内存使用补码来存储数据?
》因为CPU的设计只有加法器,没有减法,需要使用补码来实现减法
大端:数值的高位放到内存的低字节
小端模式验证:78 78
浮点型:单精度float和双精度double,扩展精度(long long等)
使用科学计数法:
10.25=1.025*10^1
101.01=1.0101*2^2
规定最高位不能为0
阶码:存放多少次幂
阶符:1/0:次幂的+/-
数符:1/0:整个数的+/-
十进制转换为二进制要把整数部分和小数部分分开转换
小数:✖2取整。整数部分:➗2取余
解码<127的就是负数,>就是正数,所以127相当于0
验证:
所以浮点数据寄存器有时候也被成为浮点数据栈
ld就是load的意思,st是store的意思,p是pop的意思,com>compare,tst>test
fild dword ptr [ebp-4],就是把这个地址的数保存到st(0)
32位可以先取到寄存器eax,然后再压栈,浮点数
实现浮点数的传参:
浮点转换函数__ftol:fistp qdword otr [ebp-0ch] ,将浮点数先转化成long,然后再取long的低32位就是int
long的低32位是int