进制转换器(十进制转n进制)
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 100 /*链栈类型定义*/
typedef struct node
{
int data1[MAXSIZE];
int top;
}StackNode; /*队列类型定义*/
typedef struct point
{
int data2[MAXSIZE];
int frot, rear;
}LQueue; /*整数部分转换*/
void Push_LinkStack(StackNode *s,int z,int k)
{
int n;
while(z!=)
{
n=z%k;
z=z/k;
if(s->top==MAXSIZE-)
{
printf("栈满!");
return;
}
else
{
s->top++;
s->data1[s->top]=n;
}
} } /*小数部分转换*/
void In_LQueue(LQueue *q,float f,int k,int m)
{
int i,j;
f=f*k;
for(i=;i<m;i++)
{
j=(int)f;
if(q->rear==MAXSIZE-)
{
printf("队满!");
return;
}
else
{
q->rear++;
q->data2[q->rear]=j;
}
f=f-j;
f=f*k;
}
} void Output(StackNode *s,LQueue *q,int m)
{
int y,i;
int x,z;
if(s->top==-)
{
printf("栈空");
}
else
{
while(s->top!=-)
{
x=s->data1[s->top];
s->top--;
if(x<=)
{
printf("%d",x);
}
else
{
z=x-;
printf("%c",'A'+z);
}
}
}
printf(".");
while(q->frot!=q->rear)
{
q->frot++;
y=q->data2[q->frot];
if(y<=)
{
printf("%d",y);
}
else
{
i=y-;
printf("%c",'A'+i);
}
}
printf("\n");
} void menu()
{
printf("*********************\n");
printf("* 进制转化器 *\n");
printf("*1----------开始转换*\n");
printf("*0--------------退出*\n");
printf("*********************\n");
} int main()
{
StackNode *s;
s=(StackNode *)malloc(sizeof(StackNode));
s->top=-;
LQueue *q;
q=(LQueue *)malloc(sizeof(LQueue));
q->frot=-;
q->rear=-;
float n,f;
int k,sel,z,m;
do
{
menu();
printf("\n请输入你的选择:");
scanf("%d",&sel);
switch(sel)
{
case :printf("\n请输入一个十进制的非负小数:");
scanf("%f",&n);
printf("\n要将其转换成几进制数;\n");
printf("(2、8、16)\n");
printf("你的选择:");
scanf("%d",&k);
printf("\n结果需保留几位小数:");
scanf("%d",&m);
z=(int)n;
f=n-z;
Push_LinkStack(s,z,k);
In_LQueue(q,f,k,m);
Output(s,q,m);
}
}while(sel!=);
return ;
}
进制转换器(十进制转n进制)的更多相关文章
- java进制转换器 图形用户界面 十进制及其相反数分别转化为二,四,八,十六进制
package com.rgy.Test; import java.awt.Color; import java.awt.FlowLayout; import java.awt.GridLayout; ...
- C语言dos程序源代码分享(进制转换器)
今天给大家分享一个dos程序的源代码 这个程序是本人在学习中的经验分享 如果有问题或者建议,欢迎大家一起交流 源代码: /*本程序为一个进制转换器 本程序不作为商业用途,完全为技术交流 喜欢C语言的同 ...
- - >code vs 1475 m进制转十进制
1475 m进制转十进制 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题解 查看运行结果 题目描述 Description 将m进制数n转化成一个 ...
- ->code vs 1474 十进制转m进制
1474 十进制转m进制 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题解 查看运行结果 题目描述 Description 将十进制数n转换成m进 ...
- C语言:其他进制转换为十进制(方法二)
#include<stdio.h> #include<math.h> #include<string.h> #include<ctype.h> //其他 ...
- wikioi 1475 m进制转十进制
/*===================================== 1475 m进制转十进制 题目描述 Description 将m进制数n转化成一个十进制数 m<=16 题目保证转 ...
- wikioi 1474 十进制转m进制
/*===================================== 1474 十进制转m进制 题目描述 Description 将十进制数n转换成m进制数 m<=16 n<=1 ...
- c-八进制 转 十进制
概述 其实x进制转十进制的算法都差不多,不过如果是针对于字符形式,他们却有点不同.使用指针和数组的形式计算,又不同.这里演示将字符型的数组形式的八进制转成十进制: #include <stdio ...
- 数据结构之【栈】+十进制转d进制(堆栈数组模拟)
其实这篇文章开出来主要是水文章%% %% 栈--后进先出的婊 特点:只能在某一端插入和删除的特殊的线性表 操作:进栈--PUSH->向栈顶插入元素 出栈--POP-->将栈顶元素删除 实现 ...
- python经常使用的十进制、16进制、字符串、字节串之间的转换(长期更新帖)
进行协议解析时.总是会遇到各种各样的数据转换的问题,从二进制到十进制,从字节串到整数等等 废话不多上.直接上样例 整数之间的进制转换: 10进制转16进制: hex(16) ==> 0x10 ...
随机推荐
- 使用火狐的restclient发送http接口post及get请求
1.在firefox安装restclient插件,具体参照http://jingyan.baidu.com/article/1876c8529b07e3890b137623.html: —.发送pos ...
- OpenGL的glViewPort窗口设置函数实现分屏
之前实现过全景图片查看(OpenGL的几何变换3之内观察全景图),那么我们需要进行分屏该如何实现呢?如下图: 没错就是以前提过的glViewPort函数,废话不多说了,我直接上代码: //从这里开始进 ...
- AsyncTask实现异步线程通信
AsyncTask是Android1.5开始提供的一个封装了Thread与Handler可以实现异步线程的简单方式,不需要再自己实现子线程,然后在主线程处接受数据. 因为AsyncTask是用线程池, ...
- C++ 迭代器介绍 [转摘]
转摘地址为:http://blog.chinaunix.net/uid-20773165-id-1847758.html 迭代器 迭代器提供对一个容器中的对象的访问方法,并且定义了容器中对象的范围.迭 ...
- iOS蓝牙4.0开发(BLE)
智能设备 和 app 通过 BLE通讯的两种模型 模型一:设备提供数据,app 展示数据: 比如小米手环 模型二:app提供数据,设备接收: 模型与corebluetooth的对应关系: 模型一:智能 ...
- 编程获得CPU的主频
CPU的主频,即CPU内核工作的时钟频率(CPU Clock Speed).CPU的主频表示在CPU内数字脉冲信号震荡的速度.主频和实际的运算速度存在一定的关系,但目前还没有一个确定的公式能够定量两者 ...
- Windows 8 IIS配置PHP运行环境
在Windows 8 的IIS(8.0)中搭建PHP运行环境: 一:安装IIS服务器 1.进入控制面板>>程序和功能>>打开或关闭Windows 功能,找到Internet信息 ...
- Java的内存回收机制
原文出处: cnblogs-小学徒V 在Java中,它的内存管理包括两方面:内存分配(创建Java对象的时候)和内存回收,这两方面工作都是由JVM自动完成的,降低了Java程序员的学习难度,避免了像C ...
- Beautiful Soup教程 转
Python中使用Beautiful Soup库的超详细教程 转 http://www.jb51.net/article/65287.htm 作者:崔庆才 字体:[增加 减小] 类型:转载 时间:20 ...
- github如何pull最新代码
github现在已经经常用了,但是经常遇到下面的问题 比如:从一个项目A中fork了一个分支B,并且在分支B有了改动.过了几天后,项目A中的代码应该会有很多人提交修改了,现在想将最新的代码pull ...