| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1452 人关注过本帖
标题:用visual studio2008写16进制字符串转换为10进制整数控制台程序,结果。。。 ...
只看楼主 加入收藏
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:2 
嵌套函数?Java里面都不可以,你还把它放到C++里?

My life is brilliant
2012-08-11 21:00
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:18 
程序代码:
#include <iostream>
#include <cstring>
#include <cstdlib>
using namespace std;

int HexToDec(const char* hex)
{
    int dec = 0, digit;
    for (int i = strlen(hex) - 1, j = 1; i > -1; --i, j *= 16) {
        if (hex[i] >= '0' && hex[i] <= '9')
            digit = hex[i] - '0';
        else if (hex[i] >= 'a' && hex[i] <= 'f')
            digit = hex[i] - 'a' + 10;
        else
            digit = hex[i] - 'A' + 10;
        dec += digit * j;
    }
    return dec;
}

int main()
{
    char hex[] = "7FFFFFFF";
    cout << HexToDec(hex) << endl;
    system("pause");
}
图片附件: 游客没有浏览图片的权限,请 登录注册

My life is brilliant
2012-08-11 21:13
nierzilaoma
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2012-8-11
收藏
得分:0 
回复 11楼 lz1091914999
嵌套函数
你的意思是要把函数的定义写在主函数外面吗,我记得可以写在主函数里面的啊
2012-08-11 21:32
nierzilaoma
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2012-8-11
收藏
得分:0 
回复 12楼 lz1091914999
非常感谢你,问题解决了
2012-08-11 21:42
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
回复 13楼 nierzilaoma
我不知道你的这个记得,是从哪里记得的。

My life is brilliant
2012-08-12 10:08
jarryjsq
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:45
专家分:124
注 册:2011-7-11
收藏
得分:0 
lz写的有点乱啊,把函数怎么写到主函数里去了,我稍微改了一下。

主函数里这样写:注意前面要声明一下函数。
int val=HexToDec("FA");
    cout<<val;
    cin.get();
    cin.get();
    return 0;


函数:
int HexToDec(char *shex)   
    {   
        int i,mid,val;   
        int len = strlen(shex);   

        if(len>8)   
            return 0;   

        mid = 0;
        int idec = 0;   
        for(i=0;i<len;i++ )   
        {   
            if( shex[i]>='0' && shex[i]<='9' )   
                mid = shex[i] - '0';   
            else if( shex[i]>='A' && shex[i]<='F')   
                mid = shex[i] - 'A' + 10;   
            else if( shex[i]>='A' && shex[i]<='F')   
                mid = shex[i] - 'A' + 10;   
            else   
                return -1;   

            mid <<= ((len-i-1)<<2);   
            idec |= mid;
        }
        return idec;   
    }
2012-08-12 18:52
快速回复:用visual studio2008写16进制字符串转换为10进制整数控制台程序,结果 ...
数据加载中...
 
   



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

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