现有2,8,10,16进制。要求输入一个数,判断是什么类型(2,8,10,16中的一种)?然后输出该数的其他类型进制的转换数!
脱裤子放屁的烂题。学校里的老师自己不会写程序,自己都不懂面向对象,只能想出这么馊的题目。
对此不必较真,你胡乱写写就可以了。关键是搞清楚这个白痴老师是怎么想的,比如说他让你用继承还是函数重载还是什么。说白了就是在他的眼里,什么才算面向对象。
对此,只有你听他上课胡乱放屁,你才有数。别人怎么知道呢。
这个没法判断,因为2 8 10 16公用一套元字符。只能排除不能确定。
比如190,因为有9,可以排除2进制8进制,但是是10进制还是16进制是不能确定的。
一般比较通用的表示进制的方法是
“0x”开头或“h”结尾的是16进制,
“0”开头或“o”结尾的是8进制,
“b”结尾的是2进制,
什么标识都没有或者“d”结尾的是10进制
另外数学上是在数字后面打个括号,括号里面写进制。
如果不约定任何标志直接给一个数是无法识别出是什么进制的,人都分辨不了,何况是计算机呢。
至于面向对象,可以将创建一个Number类,在类里的成员变量存储这个数不同进制的字符串
输入时应该会有标记的,比如二进制后缀B,十进制D,八进制O,16进制H;
使用C++一般接口比较少,功能需要自己实现;也就是需要自己手动转换进制;
比如:二进制转十进制,则将二进制串每位乘上对应的2的幂;
二进制转16进制四位化为16进制的一位;
二进制转八进制三位化为八进制的一位;
具体代码实现不涉及算法,简单模拟一下就可以了,自己思路要清晰。