量化寄存器
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
量化寄存器
题目描述
某控制器使用一个 位无符号寄存器保存非负小数,其中高 位为整数部分,低 位为小数部分。也就是说,寄存器中保存的无符号整数 表示实数
可表示的原始整数范围为 。
现在给定两个非负十进制小数 和一个运算符 。首先分别把 转换为最接近的可表示数;若一个数恰好位于两个相邻可表示数的中点,则向较大的那个数舍入。设转换后的原始整数分别为 。
随后在寄存器中进行一次运算。运算规则如下:
- 加法:;
- 减法:;
- 乘法:先将 按上述规则舍入到最近整数,再对 取模;
- 除法:先将 按上述规则舍入到最近整数,再对 取模。
除法数据保证 。
你需要输出两个输入数转换后的实际值,以及运算结果 。所有输出均保留小数点后 位。
输入格式
第一行包含两个非负十进制小数 。
第二行包含一个字符 ,为 +、-、*、/ 中的一个。
输出格式
第一行输出两个小数,依次表示 与 。
第二行输出一个小数,表示 。
三个数均保留小数点后 位。
样例 1 输入
0.1 0.2
+
样例 1 输出
0.10156250 0.19921875
0.30078125
样例 2 输入
0.25 1.0
-
样例 2 输出
0.25000000 1.00000000
16777215.25000000
样例 2 说明
减法得到负数时,按 位无符号整数的规则发生回绕。
样例 3 输入
1.5 2.25
*
样例 3 输出
1.50000000 2.25000000
3.37500000
数据范围与说明
- 均位于 ,并保证转换后的原始整数位于 ;
- 四种运算各占全部数据的 ;
- 至少 的数据在输入转换时不会产生精度损失;
- 至少 的数据在运算时不会发生向零舍入造成的下溢;
- 至少 的数据在运算时不会发生超出 位后回绕的上溢。
本题共 个等分测试点。