#include<iostream>
#include<vector>
#include<limits>
using namespace std;
using std::iterator;
///<summary>
///十进制转换为任意进制,为了熟悉操作符,也加了操作符重载。
///包括自增(++),运算符重(+),赋值函数重载(=),输出符(<<)
///</summary>
class TenToAny
{vector<char> value;long long _n;long long _x;
public:TenToAny():_n(10),_x(0){ }void Switch(){try{int x=_x, n=_n;char flag=' ';if(x>LONG_MAX||x<LONG_MIN)throw "溢出";if(x<0){flag='-';x=-x;}while(x!=0){long long remain = x%n;x = x/n;if(remain>=10)remain = 'A'+ remain % 10;else remain +='0';value.push_back(remain);}vector<char>::reverse_iterator v= value.rbegin();while(*v=='0')value.pop_back();if(flag=='-')value.push_back(flag);}catch(char *e){cout<<e<<endl;}}TenToAny(long long n,long long x){_n=n;_x=x;Switch();}TenToAny &operator = (const TenToAny &num){if(this==&num)return *this;value=num.value;_n=num._n;_x=num._x;return *this;}TenToAny operator +(const TenToAny &num1){TenToAny num;num._x=num1._x + _x;num._n=num1._n;num.Switch();return num;}TenToAny &operator ++()//前置++{_x++;value.clear();this->Switch();return *this;}TenToAny &operator ++(int)//后置++{TenToAny *temp=new TenToAny(this->_n,this->_x);_x++;value.clear();this->Switch();return *temp;}friend ostream &operator <<(ostream &out,TenToAny num);};
ostream &operator <<(ostream &out,TenToAny num)
{vector<char> value =num.value;vector<char>::reverse_iterator v= value.rbegin();for(;v!=value.rend();v++){out<<*v;}return out;
}
int main()
{TenToAny num(19,111);TenToAny copy(19,222);TenToAny sum;sum =num+copy;cout<<num<<endl;cout<<copy<<endl;cout<<copy++<<endl;cout<<(++copy)<<endl;return 0;
}

运行结果:

十进制转换为任意进制及操作符重载相关推荐

  1. c++语言将任意进制转化10进制,C++ 基础编程之十进制转换为任意进制及操作符重载...

    C++ 基础编程之十进制转换为任意进制及操作符重载 最近学习C++ 的基础知识,完成十进制转换为任意进制及操作符重载,在网上找的不错的资料,这里记录下, 实例代码: #include #include ...

  2. 关于java实现十进制转换为任意进制

    这原本是Noip2000的一个题目 https://www.luogu.com.cn/problem/P1017 被我们的伟大的唯心主义编程大师拿来当成了作业题,我正好复习一下进制问题 首先十进制转换 ...

  3. 进制转换:十进制转换为任意进制、任意进制转换为十进制

    目录 十进制转换为任意进制 任意进制转换为十进制 十进制转换为任意进制 //将10进制数num转换为d进制数 void convert_base(int num, int d) {int k;stac ...

  4. 十进制转换为任意进制的算法代码

    [算法代码] #include <bits/stdc++.h> using namespace std;char get(int x) {if(x<=9) return x+'0'; ...

  5. 进制转换【最全进制转换汇总】(整数_小数_正数_负数)正负数整数小数十进制转任意进制-正负数整数小数任意进制转十进制-正负数低进制转高进制-正负数高进制转低进制

    文章目录: 补充知识点:各进制符号表示及其关系--二进制(B).八进制(O).十进制(D).十六进制(前缀OX,后缀H) 扩展:在线进制转换 第一部分:正数 一:[整数]正数十进制转任意进制:辗转相除 ...

  6. Python数据结构14:递归的原理,递归实现数列求和、求阶乘、十进制转为任意进制

    1. 概念:什么是递归? 递归(Recursion)是一种解决问题的方法.尤其是复杂问题,有时用递归解决复杂问题可能会出奇的简单. 递归将一个比较复杂的问题分解成更小规模的问题,持续分解直到问题规模小 ...

  7. 十进制转任意进制-数论

    十进制转任意进制-数论 #include <stdio.h> #include <string.h> #include<memory.h>/*** 十进制转x进制- ...

  8. 十进制转换为32进制,并反转

    1 #region 十进制转换为32进制,并反转 2 ///<summary> 3 /// 十进制转换为32进制 4 ///</summary> 5 ///<param ...

  9. 十进制与任意进制的转换

    进制转换 任意进制转为十进制 代码实现 十进制转为任意进制 代码实现 任意进制转为十进制 方法:∑i n 系数X基数权值(累加) 将二进制转成十进制 10110110 = 1×27+1×25+1×24 ...

  10. 获取时间戳,从十进制转换为16进制(4字节)

    获取时间戳,从十进制转换为16进制(4字节) #include <stdlib.h> #include <stdio.h> #include <string.h> ...

最新文章

  1. 关于python中requests模块导入问题-python中requests模块的使用方法
  2. Exchange2013学习笔记(4)-Ex的重定向
  3. [算法练习]Two Sum
  4. java arraylist 源代码_java中ArrayList的源代码是什么
  5. Python3 爬虫实战 — 豆瓣电影TOP250【requests、Xpath、正则表达式、CSV、二进制数据储存】
  6. 腾讯自然语言处理实习面经
  7. Java记录 -59- SortedSet
  8. 计算机所占比例的函数,(excel求百分比函数公式)excel所占比例怎么算
  9. 树莓派4B安装中文拼音输入法
  10. AR智能隐形眼镜市场前景动态及发展规划建议报告2022-2028年版
  11. Spring Boot整合websocket实现群聊,点对点聊天,图片发送,音频发送
  12. C语言之stroke_s()
  13. DM8:达梦数据库DEM--dmagent监控服务器代理部署(详细步骤)
  14. html游戏能在手机上玩吗,怎么在电脑上玩手机游戏? 每日一答
  15. 【数据库系统】第一部分 数据库基础(3) 关系数据库标准语言SQL(7) 视图
  16. ppst技术视频——spring3.0 注解定时任务配置
  17. 基于SSM的社会救助信息管理 毕业设计-附源码211633
  18. 作为测试和开发调试的工具,你真的了解浏览器开发工具DevTools吗?
  19. 上海2022年平均工资为12184,涨幅只有6.9%
  20. 由神经网络机器学习的算法谈谈人的成瘾以及疲惫机制

热门文章

  1. Python操作SQLAlchemy
  2. 借款条和还款条的写法(附模板)
  3. [No000057]一个人默默背单词,小心被传染哦
  4. python selenium 元素定位总结(转载)
  5. python基础:集合操作
  6. Java——File类,递归
  7. deepin安装mysql记录
  8. ​Web安全测试解决方案
  9. Newtonsoft.Json取json字符串中的值得用法 看红色的部分就可以了
  10. Jackrabbit介绍