任意进制转换

实践练习C++17

简介

你刚成为数学教授。第一周一切顺利,第二周却发现学生的答案似乎全错。幸好,你很快发现:答案其实正确,只是都写成了二进制!更令人惊讶的是,他们每周使用的进制都不同。为了快速核对,你决定制作进制转换工具。

任务说明

将一个进制下表示数字的数位序列,转换为另一个进制下表示相同数值的数位序列。

注意:请自行实现转换,不要调用现成工具代替。

关于位值记数法

在位值记数法中,基数为 b 的数字可以表示为 b 的各次幂的线性组合。

十进制的 42 表示:

(4 × 10¹) + (2 × 10⁰)

二进制的 101010 表示:

(1 × 2⁵) + (0 × 2⁴) + (1 × 2³) + (0 × 2²) + (1 × 2¹) + (0 × 2⁰)

三进制的 1120 表示:

(1 × 3³) + (1 × 3²) + (2 × 3¹) + (0 × 3⁰)

没错,这三个数表示完全相同的数值!