数值计算:从定点数到浮点数的深入解析
1. 定点数计算
1.1 小数部分为十进制的处理
在处理十进制小数时,通常会遇到大多数小数无法转换为有限位数二进制的问题,往往需要进行舍入操作。以处理美元金额为例,为了避免舍入误差,我们将采用一种特殊的方法。
当使用定点格式处理小数部分时,我们会读取整数部分和小数部分作为整数。由于缩放是 10 的倍数,所以需要将整数部分乘以缩放因子,而不是简单地进行位移操作。
1.2 相关函数实现
1.2.1 getMoney 函数
该函数用于从键盘读取美元和美分,并将其转换为美分。以下是具体代码:
# getMoney.s
# Gets money in dollars and cents.
# Outputs 32-bit value, money in cents.
# Calling sequence:
# rdi <- pointer to length
.intel_syntax noprefix
# Useful constant
.equ 1 dollar2cents, 100
# Stack frame
.equ moneyPtr,-16
.equ dollars,-8
.equ cents,-4
.equ localSize,-16
# Constant data
.section
.rodata
超级会员免费看
订阅专栏 解锁全文
643

被折叠的 条评论
为什么被折叠?



