2 liangxiaoqi c liangxiaoqi_c 于 2015.06.06 16:46 提问

如何用面向对象的C++编写进制转换程序?应该如何转换呢?如何体现面向对象?

现有2,8,10,16进制。要求输入一个数,判断是什么类型(2,8,10,16中的一种)?然后输出该数的其他类型进制的转换数!

4个回答

devmiao
devmiao   Ds   Rxr 2015.06.06 17:01

这个没法判断,因为2 8 10 16公用一套元字符。只能排除不能确定。
比如190,因为有9,可以排除2进制8进制,但是是10进制还是16进制是不能确定的。

caozhy
caozhy   Ds   Rxr 2015.06.06 16:55

脱裤子放屁的烂题。学校里的老师自己不会写程序,自己都不懂面向对象,只能想出这么馊的题目。

对此不必较真,你胡乱写写就可以了。关键是搞清楚这个白痴老师是怎么想的,比如说他让你用继承还是函数重载还是什么。说白了就是在他的眼里,什么才算面向对象。

对此,只有你听他上课胡乱放屁,你才有数。别人怎么知道呢。

a1193561652
a1193561652   Rxr 2015.06.06 17:25

一般比较通用的表示进制的方法是
“0x”开头或“h”结尾的是16进制,
“0”开头或“o”结尾的是8进制,
“b”结尾的是2进制,
什么标识都没有或者“d”结尾的是10进制
另外数学上是在数字后面打个括号,括号里面写进制。
如果不约定任何标志直接给一个数是无法识别出是什么进制的,人都分辨不了,何况是计算机呢。
至于面向对象,可以将创建一个Number类,在类里的成员变量存储这个数不同进制的字符串

dominating413421391
dominating413421391   2015.06.06 21:32

输入时应该会有标记的,比如二进制后缀B,十进制D,八进制O,16进制H;
使用C++一般接口比较少,功能需要自己实现;也就是需要自己手动转换进制;
比如:二进制转十进制,则将二进制串每位乘上对应的2的幂;
二进制转16进制四位化为16进制的一位;
二进制转八进制三位化为八进制的一位;
具体代码实现不涉及算法,简单模拟一下就可以了,自己思路要清晰。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!