| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1480 人关注过本帖
标题:c的小问题.帮帮忙
只看楼主 加入收藏
hxlou520
Rank: 1
来 自:中國_廈門
等 级:新手上路
帖 子:116
专家分:0
注 册:2008-8-29
收藏
得分:0 
請問下,這個問題解決了沒有啊?

只要我用心,沒有不成功.
在學習中不斷失敗,必然是提高自己的一種手段.
2008-09-26 10:37
醉罪
Rank: 2
等 级:论坛游民
帖 子:140
专家分:24
注 册:2008-7-26
收藏
得分:0 
#include<math.h>
#include<stdio.h>
int main()
{
    int a,b,c=0;
    int m,n=0;
    printf("请输入要转换的十六进制数:\n");
    scanf("%d",&a);
    if(a<0) a=-a;
    do
    {
        b=a%10;  //这里不应该是10的余数 应该是16的余数  不然会出错  下面的同理
        m=pow(16,n);
        c=b*m+c;
        n++;
        a/=16; //和上面一样  应该是16   呵呵  终于解决这个问题了  谢谢大家
    }
    while(a!=0);
    printf("转换成十进制数是:%d",c);
    return 0;
}
2008-09-26 11:10
hxlou520
Rank: 1
来 自:中國_廈門
等 级:新手上路
帖 子:116
专家分:0
注 册:2008-8-29
收藏
得分:0 
呵呵~~ 解決了就好~~ 我也在幫你解決,可是我並沒有用你這種方法解決,而是簡單的...可是你說了簡單的會我就沒有發上去了~

只要我用心,沒有不成功.
在學習中不斷失敗,必然是提高自己的一種手段.
2008-09-26 11:27
hxlou520
Rank: 1
来 自:中國_廈門
等 级:新手上路
帖 子:116
专家分:0
注 册:2008-8-29
收藏
得分:0 
可是你的程序還是不能達到16進制轉換為10進制啊?

比如輸入a輸入出卻不是10那樣程序功能沒有實現啊~

只要我用心,沒有不成功.
在學習中不斷失敗,必然是提高自己的一種手段.
2008-09-26 11:34
w0nfer
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2008-9-4
收藏
得分:0 
路过,我学到了这种换算思想
2008-09-26 12:54
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1692
专家分:4282
注 册:2007-12-27
收藏
得分:0 
回复 14# hxlou520 的帖子
当然不能转了
显然LZ的目的根本不是进制转换,而是有某种更深刻的目的,我们期待进一步的说明...
2008-09-26 12:56
w0nfer
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2008-9-4
收藏
得分:0 
#include<math.h>
#include<stdio.h>
int main()
{
    int a,b,c=0;
    int m,n=0;
    printf("请输入要转换的十六进制数:\n");
    scanf("%x",&a);
    if(a<0) a=-a;
    do
    {
        b=a%16;
        m=pow(16,n);
        c=b*m+c;
        n++;
        a=a/16;
    }
    while(a!=0);
    printf("转换成十进制数是:%d\n",c);
   
}
2008-09-26 13:04
醉罪
Rank: 2
等 级:论坛游民
帖 子:140
专家分:24
注 册:2008-7-26
收藏
得分:0 
回复 14# hxlou520 的帖子
为什么你要用繁体呢0....
感觉自己的C的学习更像是三天打鱼  两天晒网....
2008-09-30 23:04
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
靠,楼主的代码输入的就是10进制数

—>〉Sun〈<—
2008-10-01 01:40
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void)
{
    unsigned long ul = 0;
    char h[9];
    int i;


    scanf("%8s", h);

    for(i = 0; i < strlen(h); i++)
    {

        if(h[i] >= '0' && h[i] <= '9')
            ul += h[i] - '0';
        else if(h[i] >= 'a' && h[i] <= 'f')
            ul += h[i] - 'a' + 10;
        else if (h[i] >= 'A' && h[i] <= 'F')
            ul += h[i] - 'A' + 10;
        else
            puts("Error!");
            
        if(h[i + 1])
            ul *= 16;
    }

    printf("%lu\n", ul);

    system("Pause");
    return 0;
}


//END

[[it] 本帖最后由 cosdos 于 2008-10-1 02:01 编辑 [/it]]

—>〉Sun〈<—
2008-10-01 01:49
快速回复:c的小问题.帮帮忙
数据加载中...
 
   



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

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