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++ 基础编程之十进制转换为任意进制及操作符重载...相关推荐

  1. **c语言八进制转换为十进制or十进制转换为8进制**

    c语言八进制转换为十进制or十进制转换为8进制 1.c语言八进制转换为十进制 ```c #include<stdio.h> int main() { char *p,s[20];int n ...

  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. PTA 基础编程题目集 7-7 12-24小时制 C语言

    PTA 基础编程题目集 7-7 12-24小时制 C语言 编写一个程序,要求用户输入24小时制的时间,然后显示12小时制的时间. 输入格式: 输入在一行中给出带有中间的:符号(半角的冒号)的24小时制 ...

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

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

  6. 数据结构 study 7: 栈 实现 十进制 转换为 8进制

    数据结构 study 6: 栈 实现 十进制 转换为 8进制 先用文字和图片 ,描述清楚这个问题. 然后自己通过代码实现. 代码纯手工写. 文字描述 达到 只要看完文字描述,就知道怎么写代码 题目描述 ...

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

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

  8. 将十进制转换为8进制并输出

    编写程序,将十进制转换为8进制并输出(不允许使用printf("%o")) 代码: #include <stdio.h>//编写程序,将十进制转换为8进制并输出(不允许 ...

  9. C语言十进制转换为其他进制(二进制图解+代码)

    十进制转二进制(画图): 十进制28转二进制的结果是将余数反过来写:11100 (做题遇到要求十进制转六进制,举例如下)十进制转六进制同理,先通过模6求余数,再通过除求商,继续往下模除,直到商为0,结 ...

最新文章

  1. Magent搭建Memcached集群
  2. android如何展示富文本_android高仿今日头条富文本编辑(发布文章)
  3. 怎样找出插件的api地址_百度云盘免登陆高速下载,调用度云简易分享地址提取在线工具...
  4. gethostbyname函数
  5. 直接在script里面换样式IE6,7,8不兼容
  6. 学习MySQL / MariaDB初学者 - 第1部分
  7. 《深入理解 Spring Cloud 与微服务构建》第十章 路由网关 Spring Cloud Zuul
  8. 运维学习之自动化安装系统的配置
  9. 计算机组成与体系结构重点(四川大学软件学院)
  10. php获取客户端IP和服务器端IP
  11. 大学课程 | 《软件工程》知识点超详细总结归纳
  12. Excel表格合并单元格丢失边框
  13. 成都盛铭轩:详情页怎么设计
  14. python中文占几个字节_中文在python中占几个字节
  15. 数据结构 与游戏背包的设计
  16. 阐述篇-聊聊我眼中の《面试宝典》
  17. MariaDB的官方手册译文
  18. 在线ARM仿真器知识(嵌入式系统设计师必备)
  19. 网页上的双语切换(java+jsp/html)
  20. 项目融资计划书PPT模板

热门文章

  1. 英特尔加入 GPU 战局,终用上 6nm 工艺?
  2. 苹果官方将首次参与天猫 618 促销活动;淘宝回应用户账号被禁用980年;Julia 1.5.0 beta1 发布 | 极客头条...
  3. 第一个国产Apache 顶级项目 Kylin,了解一下!| 原力计划
  4. Milvus加入LF AI孵化,立志成为最流行的AI数据平台
  5. 这一次,彻底弄懂 Java 字节码文件!
  6. 从事 Android 开发六年,我学到的那些事!
  7. 软件工程师面试学习指南
  8. 孤独的周鸿祎,落寞的 360
  9. 马云再谈 996:真正的 996 与被剥削无关
  10. 5G 还未商用,6G 研究已开始?!