#L0013. 单位换算

单位换算

题目描述

小杨拿到了一个 U 盘,里面存储了若干个文件,每个文件的大小都标记为某种单位(GBMBKBB)。

现在他需要将某个文件的大小从一种单位换算成另一种单位,请你帮助计算其精确值。

单位之间转换的规则如下:

$$1\text{GB}=2^{10}\text{MB}=2^{20}\text{KB}=2^{30}\text{B}$$

也就是说,所有单位之间按照每次乘除以 10241024 的方式进行转换。

你需要根据输入字符串,计算出对应问号位置的数值。

输入格式

输入一行字符串,表示一个单位换算请求,格式为:

{number}{unit1}=?{unit2}

其中:

  • {number} 是一个 0010241024 之间的整数;
  • {unit1}{unit2} 分别是两个单位,只能是 GBMBKBB 中的一个;
  • ? 为所求的数值。

输出格式

输出一个实数,表示换算后的结果。当你的输出与标准答案之间的绝对误差或相对误差小于 10610^{-6} 时视作正确。

样例

64MB=?KB
65536.000000
1024B=?KB
1.000000

样例解释

样例 1 中,6464 MB 换算成 KB 为 64×1024=6553664 \times 1024 = 65536 KB,保留 66 位小数输出 65536.000000

样例 2 中,10241024 B 换算成 KB 为 1024÷1024=11024 \div 1024 = 1 KB,保留 66 位小数输出 1.000000

数据范围与约定

子任务 分值 限制
11 77 unit1unit2 相同
22 unit2 恒为 B
33 1111 无特殊限制

对于 100%100\% 的数据,输入保证合法,等号左边的数字是一个 0010241024 之间的整数,且字符串中不会出现非法字符或负数。