标题:[求助]打印十进制、二进制、八进制、十六进制等值表。
只看楼主
wen1000
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2007-4-5
 问题点数:0 回复次数:13 
[求助]打印十进制、二进制、八进制、十六进制等值表。
打印十进制、二进制、八进制、十六进制等值表。
搜索更多相关主题的帖子: 八进制 二进制 十六进制 十进制 等值 
2007-04-23 22:59
谁与争疯
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:海南省
等 级:版主
威 望:188
帖 子:15070
专家分:17503
注 册:2007-4-22
得分:0 
查书上的函数,不知道有没有哦。

论坛是我家灌水靠大家
2007-04-23 23:24
wen1000
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2007-4-5
得分:0 

如果不 用函数可以做到吗

2007-04-23 23:52
wen1000
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2007-4-5
得分:0 
怎么 都 没 有人做啊 ????????????
2007-04-24 22:14
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
得分:0 
while(n)
{
t=n%m;//m是某个进制
if(t>=0&&t<=9)//0到9
{
data[i++]=t+'0';
}
else//10开始用字母表示
{
data[i++]=t-10+'A';
}
n/=m;
}


倚天照海花无数,流水高山心自知。
2007-04-24 22:58
wen1000
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2007-4-5
得分:0 

还没有去试
不过先感谢斑竹

2007-04-26 19:45
wen1000
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2007-4-5
得分:0 
版主可以帮我把整个程序都写出来:
要求效果如下:
十进制 二进制 八进制 十六进制
0 0 0 0
1 01 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
16 10000 20 10
2007-04-27 14:23
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
得分:0 
void zhuanhuan(int n,int m)
{
int t;
char data[100];
while(n)
{
t=n%m;//m是某个进制
if(t>=0&&t<=9)//0到9
{
data[i++]=t+'0';
}
else//10开始用字母表示
{
data[i++]=t-10+'A';
}
n/=m;
}
//Print(data);
}

倚天照海花无数,流水高山心自知。
2007-04-27 20:00
wen1000
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2007-4-5
得分:0 
版主 我能理解你写的
你写飞的也 对
可以把主程序也写出来吗
因为我今天花了好多时间都写不来
2007-04-28 09:59
qizihan
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-4-24
得分:0 

/*
用栈实现的数值转换
*/
#include<stdio.h>
#include<malloc.h>
typedef int Datatype;
typedef struct stacknode
{
Datatype data;
struct stacknode *next;
}StackNode;
typedef struct
{
StackNode *top;//栈顶指针
}LinkStack;
//置栈空
void Initial(LinkStack *s)
{
s->top=NULL;
}
//判栈空
int IsEmpty(LinkStack *s)
{
return s->top==NULL;
}
//进栈
void push(LinkStack *s,Datatype x)
{
StackNode *p=(StackNode *)malloc(sizeof(StackNode));
p->data=x;
p->next=s->top;
s->top=p;
}
//退栈
Datatype pop(LinkStack *s, Datatype x)
{
StackNode *p=s->top;//保存指针
while (IsEmpty(s))
{
printf("栈为空");//下溢
exit(1);
}
x=p->data;
s->top=p->next;
free(p);
return x;
}
LinkStack * CgData(LinkStack *p,Datatype Num,Datatype N)
{ //数值转换
LinkStack *head;
Datatype counter;
Initial(p);

while(Num)
{
//Num=Num/N;
counter=Num%N;
if(counter>9)
counter+=55;
push(p,counter);
Num=Num/N;
}
head=p;
return head;
}
void print(LinkStack *head)
{
StackNode *p;
Datatype e,data;
p=head->top;
while (!IsEmpty(head))
{
data=pop(head,e); //出栈并返回栈顶元素
if(data<10)
printf("%d",data);
else
printf("%c",data);
}
printf("\t");
}
int main()
{
LinkStack *p;
LinkStack *head;
Datatype i,j,e,N;
printf("请输入数值:");
scanf("%d",&N);
printf("十进制\t二进制\t八进制\t十六进制\t\n");
for(i=1;i<=N;i++)
{
printf("%d\t",i);
for(j=2;j<=8;j*=4)//转制二进制和八进制数据
{
head=CgData(p,i,j);
print(head);
}
head=CgData(p,i,16);//转制十六进制数据
print(head);
printf("\n");
}
getchar();
return 0;
}


2007-04-28 21:25



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-134385-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.045839 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved