| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1608 人关注过本帖
标题:c语言习题解答求助
只看楼主 加入收藏
yy889
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2017-3-27
结帖率:0
收藏
已结贴  问题点数:20 回复次数:19 
c语言习题解答求助
写一个函数,输入一个十六进制数,输出相应的十进制数。要求用函数  谢谢大神了

[此贴子已经被作者于2017-3-27 18:17编辑过]

搜索更多相关主题的帖子: 十六进制 十进制 c语言 
2017-03-27 17:42
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:7 
进制转换一类的课题还是不难的  说出你的疑惑之处

如果直接要代码  需要有高手有时间 有兴趣的

DO IT YOURSELF !
2017-03-27 17:47
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:7 
作业贴么?题目给的也不严谨

例:0xAB = 10*16 + 11 = 171                0x8D = 8*16 + 13 = 141

转换计算一下,不麻烦,代码就照这规则写呗

三十年河东,三十年河西,莫欺少年穷!
2017-03-27 17:50
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:7 
一个搞笑的写法。。
程序代码:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>

struct base {
    unsigned int a:4;
    unsigned int b:4;
    unsigned int c:4;
    unsigned int d:4;
    unsigned int e:4;
    unsigned int f:4;
    unsigned int g:4;
    unsigned int h:4;
};
int
base( char *s );

int
main( void )
{

    char s1[ 20 ];

    scanf("%s",s1);

    printf("%d\n", base(s1));

    return 0;
}

int
base( char *s )
{
    struct base *n;
    int a;
    
    a = strtol( s, NULL, 16);
    n = (struct base *)&a;


    return ( n->a * pow( 16, 0 ) + n->b * pow( 16 , 1 )  + n->c * pow( 16, 2 )  + n->d * pow( 16 , 3) + n->e * pow( 16, 4 ) + n->f * pow(16,5) + n->g * pow( 16, 6 ) + n->h * pow( 16, 7 ) );

    
}




程序代码:
#include <stdio.h>
#include <stdlib.h>

int
base( char *s );

int
main( void )
{

    char s1[ 20 ];

    scanf("%s",s1);

    printf("%d\n", base(s1));

    return 0;
}

int
base( char *s )
{
    int a;
    int n;
    int m;
    
    a = strtol( s, NULL, 16);
    
    for( m = 0, n = 0xF; n; n <<= 4 )
        m += (a & n);

    return m;
}


[此贴子已经被作者于2017-3-27 18:56编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-03-27 18:00
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
scanf("%x",&a);  进制转换 这里应该接收字符串

你那个base struct 是神马  没看懂


DO IT YOURSELF !
2017-03-27 18:09
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
回复 5楼 wp231957
字段。
16进制每个数站4个位,直接提取这个位的值,相加,乘于16就行了。

如果是字符串的话,那么多一道手续,将字符串转换为16进制的数就好了,然后还是现在的方法。

咦……不对哦,貌似有错误,我再想想先。

[此贴子已经被作者于2017-3-27 18:14编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-03-27 18:11
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
回复 6楼 renkejun1942
如果用%x 接收 那就没意义了  直接用%d 转出就是了

DO IT YOURSELF !
2017-03-27 18:16
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
以下是引用renkejun1942在2017-3-27 18:00:54的发言:

有错误,删掉。
晕 你贴出来啊  我还没有研究你那个神马 段 的问题呢

DO IT YOURSELF !
2017-03-27 18:19
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
回复 8楼 wp231957
刚才有错误,现在好了。

就是一个搞笑的写法,而且不可移植,在我这里能用,在别人那里未必能用。

完全可以通过位移和掩码来实现,而且这样还是可移植的。

[此贴子已经被作者于2017-3-27 18:25编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-03-27 18:21
yy889
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2017-3-27
收藏
得分:0 
回复 4楼 renkejun1942
每个步骤后可以加标注吗  我是新手,不怎么懂每一步用的是什么
2017-03-27 18:54
快速回复:c语言习题解答求助
数据加载中...
 
   



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

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