”最简单的数值转换,求余。“

也许有好多的算法都可以进行数据转换。但是最根本的其实就是不断的去求余,16进制的转换,人们为了好区分,就把10改为A,11改为B...........

其实最根本的就是不断的求余,从而得到答案,再在答案上面进行修改,从而便于记忆。

                                       如果你想输出含有字母的,请定义一个数组,最后输出对应数组里面的,数字,就可以了。

                                                                                                      

普通代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>using namespace std;
typedef long long ll;
int vis[10010];
ll maxn;
int n;
int index;void cmp()
{index=0;while(maxn>=n){vis[index++] = maxn%n;maxn = maxn/n;}if(maxn!=0){vis[index++] = maxn;}return ;
}int main()
{int m;while(scanf("%d%d",&m,&n)!=EOF){while(m--){scanf("%lld",&maxn);if(maxn<n){printf("%d\n",maxn);continue;}cmp();for(int i=index-1; i>=0; i--){printf("%d",vis[i]);}printf("\n");}}return 0;
}

含字母的代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>using namespace std;typedef long long ll;
int vis[10010];
ll maxn;
int n;
int index;void cmp()
{index=0;while(maxn>=n){vis[index++] = maxn%n;maxn = maxn/n;}if(maxn!=0){vis[index++] = maxn;}return ;
}int main()
{char Character[]= {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};int m;while(scanf("%d%d",&m,&n)!=EOF){while(m--){scanf("%lld",&maxn);if(maxn<n){printf("%c\n",Character[maxn]);continue;}cmp();for(int i=index-1; i>=0; i--){printf("%c",Character[vis[i]]);}printf("\n");}}return 0;
}

以下的Java代码,是利用自己定义的栈实现的!

如有不对,请各位大佬,留言!留言,我看到就立即更正!

附上的Java代码:

import java.lang.reflect.Array;
import java.util.Scanner;
class SeqStack<E> {private int maxsize; // 顺序栈的容量private E[] data; // 数组,用于存储顺序栈中的数据元素private int top; // 指示顺序栈的栈顶public int getMaxsize() {return maxsize;}public void setMaxsize(int maxsize) {this.maxsize = maxsize;}public E[] getData() {return data;}public void setData(E[] data) {this.data = data;}public int getTop() {return top;}public void setTop(int top) {this.top = top;}// 初始化栈@SuppressWarnings("unchecked")public SeqStack(Class<E> type, int size) {data = (E[]) Array.newInstance(type, size);this.maxsize = size;top = 0;}// 入栈操作public E push(E item) {if (isFull()) {data[top] = item;top++;return item;} elsereturn null;}// 出栈操作public E pop() {if (!empty()) {E temp = data[top - 1];top--;return temp;} else {return null;}}// 获取栈顶数据元素public E peek() {if (!empty()) {E temp = data[top - 1];return temp;} else {return null;}}// 求栈的长度public int size() {return top;}// 判断顺序栈是否为空public boolean empty() {if (this.top == 0)return true;return false;}// 判断顺序栈是否为满public boolean isFull() {if (this.maxsize == top)return false;return true;}// 清空栈apublic void clear() {this.top = 0;}
}public class Main {public static void main(String[] args) {Character  ch[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};Scanner sc = new Scanner(System.in);int n,m,k,t,x,y;SeqStack<Character> stack = new SeqStack<Character>(Character.class,100);n = sc.nextInt(); ///用例数目k = sc.nextInt(); //转换的进制数for(int i=0;i<n;i++){m = sc.nextInt();  ///想要转换的数字if(m==0) System.out.println(0);else{stack.clear();while(m>0){stack.push(ch[m%k]);m = m/k;}while(!stack.empty()){System.out.print(stack.pop());}System.out.println();}}}
}

C语言与Java实现:数制转换相关推荐

  1. java使用链栈实现数制转换

    java实现链栈在前面有所介绍:http://www.cnblogs.com/lixiaolun/p/4644141.html 将前面java实现链栈的代码稍作修改: package linkedst ...

  2. Bailian2710 数制转换(POJ NOI0113-01)【进制】

    问题链接:POJ NOI0113-01 数制转换. 原题出处:Bailian2710 数制转换. 总时间限制: 1000ms 内存限制: 65536kB 描述 求任意两个不同进制非负整数的转换(2进制 ...

  3. C语言链表的转置算法,c语言编程集 数据结构 顺序表 点链表 数制转换 矩阵转置.doc...

    c语言编程集 数据结构 顺序表 点链表 数制转换 矩阵转置 #include "stdio.h" #include "malloc.h" /*typedef s ...

  4. c语言程序设计报告数制转换,数制转换-C语言程序设计课程设计报告.docx

    计算机学院<高级语言程序设计>课程设计报告 PAGE \* MERGEFORMAT 10学号2016-2017学年 第二学期 <C语言程序设计> 课程设计报告 题目:数制转换专 ...

  5. 数制转换c语言编程,C语言数据结构中数制转换实例代码

    C语言数据结构中数制转换实例代码 数制转换是严蔚敏的数据结构那本书中的例子,但是那本书中的例子大都是用伪代码的形式写的,不是很容易理解和实现,对初学者造成了不小的困扰,在这里我们将其详尽的实现出来,以 ...

  6. 数据结构c语言进制转换八进制,C语言数据结构中数制转换实例代码

    C语言数据结构中数制转换实例代码 数制转换是严蔚敏的数据结构那本书中的例子,但是那本书中的例子大都是用伪代码的形式写的,不是很容易理解和实现,对初学者造成了不小的困扰,在这里我们将其详尽的实现出来,以 ...

  7. 栈的应用-数制转换(C语言数据结构)

    数制转换 在计算机中经常面对不同数制的转换问题,如将一个十进制数N转换为d进制B.数制转换的解决方法很多,其中一个简单的转换算法是重复下述两步.直到N等于零为止. x = N mod d N = N ...

  8. 利用栈进行数制转换和括号匹配(C语言)

    数制转换:将十进制数转换为任意进制数.由数制转换的计算公式 N = (N / d) × d + N % d (其中N为想转换的十进制数,d为想转换的进制) 我们可以知道其转换后的结果是逆序输出,故可以 ...

  9. 1,Java语言基础-Java语言概述和必要计算机知识

    Java语言基础 Java语言概述 1,Java语言发展史 Java语言本质 Java是面向对象的高级语言,它是由c和c++发展而来. Java发展语言历史概述 Java 是由 James Gosli ...

  10. c++和java的类转换的区别

    转自:http://club.topsage.com/thread-265349-1-1.html Java并不仅仅是C++语言的一个变种,它们在某些本质问题上有根本的不同: (1)Java比C++程 ...

最新文章

  1. 持续集成(一)为什么我们迫切需要持续集成
  2. Hadoop运行模式 之 本地运行模式
  3. 程序员的自我修养之马桶修理工:compose方法的妙用!
  4. 数据中心即服务(DCaaS):建筑设计师的下一个重大机遇
  5. 负载均衡—算法/策略
  6. android发送网络请求没反应,Android无法使用HttpURLConnection发送GET请求
  7. Linux平台gcc和动态共享库的基础知识
  8. 双显示器N卡安装ubuntu驱动以及解决办法
  9. 腾讯全球首款JS代码坦克 CodeTank
  10. python判断素数的函数_python中判断素数的函数
  11. IDEA社区版配置Tomcat
  12. Swift5实现ios后台播放语音,腾讯音视频通话后台播放来电铃声
  13. L2TP连接尝试失败,因为安全层在初始化与远程计算机的协商时遇到一个处理错误
  14. http 301 302 303 307 308 傻傻分不清
  15. 破解Zip加密文件常用的几种方法
  16. PowerManagerService(一)
  17. Java核心技术卷Ⅰ-第四章对象和类
  18. Hexo自动部署到阿里云(Ubantu16.04)【超详细踩坑记录】
  19. 创邻科技Galaxybase荣获2021年度IT168技术卓越奖
  20. Tensorflow针对CPU的编译优化加速-解决Not compiled to use: SSE4.1 SSE4.2 AVX AVX2 FMA

热门文章

  1. RStudio安装tsna时报错installation of package ‘tsna’ had non-zero exit status
  2. Pycharm 报错Out of Memory 然后一直闪退(已解决)
  3. Daily English - go for it.
  4. 妈蛋,这玩意还真不得不会!
  5. 人民币大写在线转换工具
  6. access是用来干什么的_Access数据库是做什么的?
  7. PHP 自动生成sitemap
  8. TCP重连重试机制——记一次线上故障排查思考
  9. 计算机主机配置有哪些,组装电脑配置推荐有哪些
  10. 我屮艸芔茻,mongo居然可以自动删除数据