c++语言将任意进制转化10进制,C++ 基础编程之十进制转换为任意进制及操作符重载...
C++ 基础编程之十进制转换为任意进制及操作符重载
最近学习C++ 的基础知识,完成十进制转换为任意进制及操作符重载,在网上找的不错的资料,这里记录下,
实例代码:
#include
#include
#include
using namespace std;
using std::iterator;
///
///十进制转换为任意进制,为了熟悉操作符,也加了操作符重载。
///包括自增(++),运算符重(+),赋值函数重载(=),输出符(<
///
class TenToAny
{
vector 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
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::reverse_iterator v= value.rbegin();
while(*v=='0')
value.pop_back();
if(flag=='-')
value.push_back(flag);
}
catch(char *e)
{
cout<
}
}
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 &operator <
{
vector value =num.value;
vector::reverse_iterator v= value.rbegin();
for(;v!=value.rend();v++)
{
out<
}
return out;
}
int main()
{
TenToAny num(19,111);
TenToAny copy(19,222);
TenToAny sum;
sum =num+copy;
cout<
cout<
cout<
cout<
return 0;
}
运行结果:
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
c++语言将任意进制转化10进制,C++ 基础编程之十进制转换为任意进制及操作符重载...相关推荐
- **c语言八进制转换为十进制or十进制转换为8进制**
c语言八进制转换为十进制or十进制转换为8进制 1.c语言八进制转换为十进制 ```c #include<stdio.h> int main() { char *p,s[20];int n ...
- 关于java实现十进制转换为任意进制
这原本是Noip2000的一个题目 https://www.luogu.com.cn/problem/P1017 被我们的伟大的唯心主义编程大师拿来当成了作业题,我正好复习一下进制问题 首先十进制转换 ...
- 进制转换:十进制转换为任意进制、任意进制转换为十进制
目录 十进制转换为任意进制 任意进制转换为十进制 十进制转换为任意进制 //将10进制数num转换为d进制数 void convert_base(int num, int d) {int k;stac ...
- PTA 基础编程题目集 7-7 12-24小时制 C语言
PTA 基础编程题目集 7-7 12-24小时制 C语言 编写一个程序,要求用户输入24小时制的时间,然后显示12小时制的时间. 输入格式: 输入在一行中给出带有中间的:符号(半角的冒号)的24小时制 ...
- 十进制转换为32进制,并反转
1 #region 十进制转换为32进制,并反转 2 ///<summary> 3 /// 十进制转换为32进制 4 ///</summary> 5 ///<param ...
- 数据结构 study 7: 栈 实现 十进制 转换为 8进制
数据结构 study 6: 栈 实现 十进制 转换为 8进制 先用文字和图片 ,描述清楚这个问题. 然后自己通过代码实现. 代码纯手工写. 文字描述 达到 只要看完文字描述,就知道怎么写代码 题目描述 ...
- 获取时间戳,从十进制转换为16进制(4字节)
获取时间戳,从十进制转换为16进制(4字节) #include <stdlib.h> #include <stdio.h> #include <string.h> ...
- 将十进制转换为8进制并输出
编写程序,将十进制转换为8进制并输出(不允许使用printf("%o")) 代码: #include <stdio.h>//编写程序,将十进制转换为8进制并输出(不允许 ...
- C语言十进制转换为其他进制(二进制图解+代码)
十进制转二进制(画图): 十进制28转二进制的结果是将余数反过来写:11100 (做题遇到要求十进制转六进制,举例如下)十进制转六进制同理,先通过模6求余数,再通过除求商,继续往下模除,直到商为0,结 ...
最新文章
- Magent搭建Memcached集群
- android如何展示富文本_android高仿今日头条富文本编辑(发布文章)
- 怎样找出插件的api地址_百度云盘免登陆高速下载,调用度云简易分享地址提取在线工具...
- gethostbyname函数
- 直接在script里面换样式IE6,7,8不兼容
- 学习MySQL / MariaDB初学者 - 第1部分
- 《深入理解 Spring Cloud 与微服务构建》第十章 路由网关 Spring Cloud Zuul
- 运维学习之自动化安装系统的配置
- 计算机组成与体系结构重点(四川大学软件学院)
- php获取客户端IP和服务器端IP
- 大学课程 | 《软件工程》知识点超详细总结归纳
- Excel表格合并单元格丢失边框
- 成都盛铭轩:详情页怎么设计
- python中文占几个字节_中文在python中占几个字节
- 数据结构 与游戏背包的设计
- 阐述篇-聊聊我眼中の《面试宝典》
- MariaDB的官方手册译文
- 在线ARM仿真器知识(嵌入式系统设计师必备)
- 网页上的双语切换(java+jsp/html)
- 项目融资计划书PPT模板
热门文章
- 英特尔加入 GPU 战局,终用上 6nm 工艺?
- 苹果官方将首次参与天猫 618 促销活动;淘宝回应用户账号被禁用980年;Julia 1.5.0 beta1 发布 | 极客头条...
- 第一个国产Apache 顶级项目 Kylin,了解一下!| 原力计划
- Milvus加入LF AI孵化,立志成为最流行的AI数据平台
- 这一次,彻底弄懂 Java 字节码文件!
- 从事 Android 开发六年,我学到的那些事!
- 软件工程师面试学习指南
- 孤独的周鸿祎,落寞的 360
- 马云再谈 996:真正的 996 与被剥削无关
- 5G 还未商用,6G 研究已开始?!