| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1054 人关注过本帖
标题:诚求10进制化为3~16进制的算法
只看楼主 加入收藏
菜鸟1号
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2006-4-7
收藏
 问题点数:0 回复次数:7 
诚求10进制化为3~16进制的算法

同题....
只要有想法都可以说出来....一个也行....
海纳百川!~~

搜索更多相关主题的帖子: 进制 算法 海纳 
2006-07-29 20:51
yeshirow
Rank: 4
等 级:贵宾
威 望:10
帖 子:854
专家分:0
注 册:2006-6-8
收藏
得分:0 
對於整數的用 itoa 函數

itoa(10進制數, 字元緩沖, 進制);

例如, 把一個 10 進制數轉換成 12 進制:
int a = 43294;
char s[1024];
itoa(a, s, 12);
printf("%s", s);
輸出: 2107a

原來朋友仔感情再天真, 亦是我永遠也會愛惜的人, 明日愛他人, 也記住學會不要緊; 原來朋友比戀人更高分, 亦讓我開始懂得不記恨, 若大家都敏感, 我更要永遠記得拒絕再因小事怪人, 爲何沒有這條校訓...Twins-朋友仔 MCSD Training
2006-07-29 21:08
yuki
Rank: 2
等 级:新手上路
威 望:5
帖 子:508
专家分:0
注 册:2005-2-4
收藏
得分:0 

#include <stdio.h>
#include <string.h>
#include <conio.h>

#define STACK_SIZE 256

static unsigned char hex_tbl[16] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};

int main() {
int stack[STACK_SIZE];
int *stkptr = stack;

int m = 0,n = 0;
/* Initialize stack */
memset(stack,0,sizeof(int)*STACK_SIZE);

printf("Please input a decimal value ? ");
scanf("%d",&m);
printf("Please input base value of conversion ? ");
scanf("%d",&n);

while(m) {
*stkptr++ = m % n;
m /= n;
}

printf("The result is ");
if(n == 16) {
while(--stkptr >= stack)
printf("%c",hex_tbl[*stkptr]);
printf("\n");
}
else {
while(--stkptr >= stack)
printf("%d",*stkptr);
printf("\n");
}

getch();
return 0;
}

前段日子刚好做过,你要十进制转几进制就转机进制。


我们都在命运湖上荡舟划桨,波浪起伏使我们无法逃离孤行;如果我们迷失方向,波浪将指引我们穿过另一天曙光
2006-07-30 09:42
zhangjuan
Rank: 1
等 级:新手上路
帖 子:992
专家分:0
注 册:2006-1-19
收藏
得分:0 
baidu一下

2006-07-30 11:03
jin_geping
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2006-7-12
收藏
得分:0 
上面的程序好象有点问题啊,也不知道是自己写的还是那弄的
m%n n初始化为0
那么下面的能进行吗?
2006-07-30 14:41
jin_geping
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2006-7-12
收藏
得分:0 

明白了
好象是对的
看错了
很抱歉
2006-07-30 14:43
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

#include<stdio.h>

int main()
{
int num,m,top=0;
char str[30];

scanf("%d",&num); /*输入数*/
scanf("%d",&m); /*输入进制*/

while(num)
{
if(num%m<10)
str[top]=num%m+'0';
else
str[top]=num%m-10+'A';
num=num/m;
top++;
}

while(--top>=0)
{
printf("%c",str[top]);
}

printf("\n");

return(0);
}

/*试试我的*/


倚天照海花无数,流水高山心自知。
2006-07-30 16:16
123qqqq
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-7-25
收藏
得分:0 
#include "stdio.h"
main()
{
int n,z,i=0;
int a[100];

scanf("%d",&z);/*输入数*/
scanf("%d",&n);/*输入数制*/

do
{
a[i++]=z%n;
z=z/n;
}while(z>0);

for(i--;i>=0;i--)
printf("%x",a[i]);

return 0;

}

[此贴子已经被作者于2006-7-31 0:12:30编辑过]

2006-07-31 00:08
快速回复:诚求10进制化为3~16进制的算法
数据加载中...
 
   



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

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