| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 559 人关注过本帖
标题:[求助]十六进制转换有点问题
只看楼主 加入收藏
honkerman
Rank: 2
等 级:新手上路
威 望:4
帖 子:3078
专家分:0
注 册:2006-8-25
收藏
 问题点数:0 回复次数:5 
[求助]十六进制转换有点问题

#include "stdio.h"
#include "stdlib.h"

void shitoer(int k)
{
int i=0;
int a[10];
do{
a[i]=k%2;
k/=2;
i++;
}while(k);
printf("转换为二进制整数:");
i--;
for(;i>=0;i--)
{
printf("%d",a[i]);
}
printf("\n");
}

void shitoba(int k)
{
int i=0;
int a[10];
do{
a[i]=k%8;
k/=8;
i++;
}while(k);
printf("转换为八进制整数:\n");
i--;
for(;i>=0;i--)
{
printf("%d",a[i]);
}
printf("\n");

}

void shitoshiliu(int k)
{
int i=0,j;
char a[10];
while(k!=0){
a[i]=k%16;
k/=16;
switch(a[i])
{
case 10 :
a[i]='A';
break;
case 11 :
a[i]='B';
break;
case 12 :
a[i]='C';
break;
case 13 :
a[i]='D';
break;
case 14 :
a[i]='E';
break;
case 15 :
a[i]='F';
break;
default:
a[i]+=95;
break;
}

i++;
}
printf("转换为16进制整数:\n");

for(j=i-1;j>=0;j--)
{
printf("%c",a[i]);
}
printf("\n");

}

void main()
{
int i,num;
printf("0.退出 1.十进制~二进制 2.十进制~八进制 3.十进制~十六进制\n");
printf("请选择功能:\n");
scanf("%d",&i);
fflush(stdin);
if(i==0)
exit(0);
printf("请输入一个十进制数:\n");
scanf("%d",&num);
switch(i)
{
case 0: exit(0);
case 1: shitoer(num);break;
case 2: shitoba(num);break;
case 3: shitoshiliu(num);break;
default: printf("输入错误!");

}
}
看看怎么改一下啊?

搜索更多相关主题的帖子: 十六进制 
2006-09-07 20:41
ww84020209
Rank: 1
等 级:新手上路
帖 子:190
专家分:0
注 册:2006-8-21
收藏
得分:0 
以下是引用honkerman在2006-9-7 20:41:19的发言:

#include "stdio.h"
#include "stdlib.h"

void shitoer(int k)
{
int i=0;
int a[10];
do{
a[i]=k%2;
k/=2;
i++;
}while(k);
printf("转换为二进制整数:");
i--;
for(;i>=0;i--)
{
printf("%d",a[i]);
}
printf("\n");
}

void shitoba(int k)
{
int i=0;
int a[10];
do{
a[i]=k%8;
k/=8;
i++;
}while(k);
printf("转换为八进制整数:\n");
i--;
for(;i>=0;i--)
{
printf("%d",a[i]);
}
printf("\n");

}

void shitoshiliu(int k)
{
int i=0,j;
char a[10];
while(k!=0){
a[i]=k%16;
k/=16;
switch(a[i])
{
case 10 :
a[i]='A';
break;
case 11 :
a[i]='B';
break;
case 12 :
a[i]='C';
break;
case 13 :
a[i]='D';
break;
case 14 :
a[i]='E';
break;
case 15 :
a[i]='F';
break;
default:
a[i]+=48;
break;
}

i++;
}
printf("转换为16进制整数:\n");

for(j=i-1;j>=0;j--)
{
printf("%c",a[j]);
}
printf("\n");

}

void main()
{
int i,num;
printf("0.退出 1.十进制~二进制 2.十进制~八进制 3.十进制~十六进制\n");
printf("请选择功能:\n");
scanf("%d",&i);
fflush(stdin);
if(i==0)
exit(0);
printf("请输入一个十进制数:\n");
scanf("%d",&num);
switch(i)
{
case 0: exit(0);
case 1: shitoer(num);break;
case 2: shitoba(num);break;
case 3: shitoshiliu(num);break;
default: printf("输入错误!");

}
}
看看怎么改一下啊?


2006-09-07 21:00
honkerman
Rank: 2
等 级:新手上路
威 望:4
帖 子:3078
专家分:0
注 册:2006-8-25
收藏
得分:0 
OK了。谢谢哦

" target="_blank">God Bless You[GLOW=255,#00ff00,2]My Friends![/GLOW]
2006-09-07 21:03
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 


#include<stdio.h>
#define MAXSIZE 100

typedef struct
{
int a[MAXSIZE];
int top ;
}sequence_stack ;


void init_seqstack(sequence_stack*st)
{
st->top=0 ;
}

void printseqstack(sequence_stack*st,int m)
{
int i ;

i=st->top-1 ;
while(i>=0)
{
/*十进制转换为十六进制*/
if(m==16)
{
switch(st->a[i])
{
case 10 :
printf("A");
break ;
case 11 :
printf("B");
break ;
case 12 :
printf("C");
break ;
case 13 :
printf("D");
break ;
case 14 :
printf("E");
break ;
case 15 :
printf("F");
break ;
case 9 :
case 8 :
case 7 :
case 6 :
case 5 :
case 4 :
case 3 :
case 2 :
case 1 :
case 0 :
printf("%d",st->a[i]);
break ;
}
}
else
{
printf("%d",st->a[i]);
}
i--;
}
}

/*堆栈存放各个数*/
void jzhzhh(sequence_stack *st,int n,int m)
{
int i=0 ;

while(n!=0)
{
st->a[i]=n%m ;
n=n/m ;
st->top++;
i++;
}
}

int main()
{
int n,m ;
sequence_stack p ;

printf("十进制数n=");
scanf("%d",&n);
printf("进制m=");
scanf("%d",&m);
init_seqstack(&p);
jzhzhh(&p,n,m);
printseqstack(&p,m);
printf("\n");
return(0);
}

/*十进制数转其他进制数*/



倚天照海花无数,流水高山心自知。
2006-09-07 21:08
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

/*我在ww84020209修改的基础上加了点语句,楼主看看是否满意*/


#include "stdio.h"
#include "stdlib.h"

void shitoer(int k)
{
int i=0 ;
int a[10];
do
{
a[i]=k%2 ;
k/=2 ;
i++;
}
while(k);
printf("转换为二进制整数:");
i--;
for(;i>=0;i--)
{
printf("%d",a[i]);
}
printf("\n");
}

void shitoba(int k)
{
int i=0 ;
int a[10];
do
{
a[i]=k%8 ;
k/=8 ;
i++;
}
while(k);
printf("转换为八进制整数:");
i--;
for(;i>=0;i--)
{
printf("%d",a[i]);
}
printf("\n");

}

void shitoshiliu(int k)
{
int i=0,j ;
char a[10];
while(k!=0)
{
a[i]=k%16 ;
k/=16 ;
switch(a[i])
{
case 10 :
a[i]='A' ;
break ;
case 11 :
a[i]='B' ;
break ;
case 12 :
a[i]='C' ;
break ;
case 13 :
a[i]='D' ;
break ;
case 14 :
a[i]='E' ;
break ;
case 15 :
a[i]='F' ;
break ;
default :
a[i]+=48 ;
break ;
}

i++;
}
printf("转换为16进制整数:");

for(j=i-1;j>=0;j--)
{
printf("%c",a[j]);
}
printf("\n");

}

int main()
{
int i,num ;
printf("0.退出 1.十进制~二进制 2.十进制~八进制 3.十进制~十六进制\n");
printf("\n请选择功能:");
while(scanf("%d",&i))
{
fflush(stdin);
if(i==0)
exit(0);
printf("\n请输入一个十进制数:");
scanf("%d",&num);
switch(i)
{
case 0 :
exit(0);
case 1 :
shitoer(num);
break ;
case 2 :
shitoba(num);
break ;
case 3 :
shitoshiliu(num);
break ;
default :
printf("输入错误!");

}
printf("\n请选择功能:");
}
return(0);
}


倚天照海花无数,流水高山心自知。
2006-09-07 21:15
honkerman
Rank: 2
等 级:新手上路
威 望:4
帖 子:3078
专家分:0
注 册:2006-8-25
收藏
得分:0 
谢谢啦,斑竹,顶你一下,HOHO

" target="_blank">God Bless You[GLOW=255,#00ff00,2]My Friends![/GLOW]
2006-09-07 21:42
快速回复:[求助]十六进制转换有点问题
数据加载中...
 
   



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

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