十进制转换为任意进制及操作符重载
#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;
}
运行结果:
十进制转换为任意进制及操作符重载相关推荐
- c++语言将任意进制转化10进制,C++ 基础编程之十进制转换为任意进制及操作符重载...
C++ 基础编程之十进制转换为任意进制及操作符重载 最近学习C++ 的基础知识,完成十进制转换为任意进制及操作符重载,在网上找的不错的资料,这里记录下, 实例代码: #include #include ...
- 关于java实现十进制转换为任意进制
这原本是Noip2000的一个题目 https://www.luogu.com.cn/problem/P1017 被我们的伟大的唯心主义编程大师拿来当成了作业题,我正好复习一下进制问题 首先十进制转换 ...
- 进制转换:十进制转换为任意进制、任意进制转换为十进制
目录 十进制转换为任意进制 任意进制转换为十进制 十进制转换为任意进制 //将10进制数num转换为d进制数 void convert_base(int num, int d) {int k;stac ...
- 十进制转换为任意进制的算法代码
[算法代码] #include <bits/stdc++.h> using namespace std;char get(int x) {if(x<=9) return x+'0'; ...
- 进制转换【最全进制转换汇总】(整数_小数_正数_负数)正负数整数小数十进制转任意进制-正负数整数小数任意进制转十进制-正负数低进制转高进制-正负数高进制转低进制
文章目录: 补充知识点:各进制符号表示及其关系--二进制(B).八进制(O).十进制(D).十六进制(前缀OX,后缀H) 扩展:在线进制转换 第一部分:正数 一:[整数]正数十进制转任意进制:辗转相除 ...
- Python数据结构14:递归的原理,递归实现数列求和、求阶乘、十进制转为任意进制
1. 概念:什么是递归? 递归(Recursion)是一种解决问题的方法.尤其是复杂问题,有时用递归解决复杂问题可能会出奇的简单. 递归将一个比较复杂的问题分解成更小规模的问题,持续分解直到问题规模小 ...
- 十进制转任意进制-数论
十进制转任意进制-数论 #include <stdio.h> #include <string.h> #include<memory.h>/*** 十进制转x进制- ...
- 十进制转换为32进制,并反转
1 #region 十进制转换为32进制,并反转 2 ///<summary> 3 /// 十进制转换为32进制 4 ///</summary> 5 ///<param ...
- 十进制与任意进制的转换
进制转换 任意进制转为十进制 代码实现 十进制转为任意进制 代码实现 任意进制转为十进制 方法:∑i n 系数X基数权值(累加) 将二进制转成十进制 10110110 = 1×27+1×25+1×24 ...
- 获取时间戳,从十进制转换为16进制(4字节)
获取时间戳,从十进制转换为16进制(4字节) #include <stdlib.h> #include <stdio.h> #include <string.h> ...
最新文章
- 关于python中requests模块导入问题-python中requests模块的使用方法
- Exchange2013学习笔记(4)-Ex的重定向
- [算法练习]Two Sum
- java arraylist 源代码_java中ArrayList的源代码是什么
- Python3 爬虫实战 — 豆瓣电影TOP250【requests、Xpath、正则表达式、CSV、二进制数据储存】
- 腾讯自然语言处理实习面经
- Java记录 -59- SortedSet
- 计算机所占比例的函数,(excel求百分比函数公式)excel所占比例怎么算
- 树莓派4B安装中文拼音输入法
- AR智能隐形眼镜市场前景动态及发展规划建议报告2022-2028年版
- Spring Boot整合websocket实现群聊,点对点聊天,图片发送,音频发送
- C语言之stroke_s()
- DM8:达梦数据库DEM--dmagent监控服务器代理部署(详细步骤)
- html游戏能在手机上玩吗,怎么在电脑上玩手机游戏? 每日一答
- 【数据库系统】第一部分 数据库基础(3) 关系数据库标准语言SQL(7) 视图
- ppst技术视频——spring3.0 注解定时任务配置
- 基于SSM的社会救助信息管理 毕业设计-附源码211633
- 作为测试和开发调试的工具,你真的了解浏览器开发工具DevTools吗?
- 上海2022年平均工资为12184,涨幅只有6.9%
- 由神经网络机器学习的算法谈谈人的成瘾以及疲惫机制