| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1735 人关注过本帖
标题:字符串如何转换为十六进数?
只看楼主 加入收藏
Meixu
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2006-10-12
收藏
 问题点数:0 回复次数:18 
字符串如何转换为十六进数?

如何将这个字符串str[]="1234567890ABCDEF1234567890ABCDEF"
转换为A=0x12345678,B=0x90ABCDEF,C=0x12345678,D=0x90ABCDEF
这四个十六制数。

搜索更多相关主题的帖子: 字符 str 
2006-10-18 14:37
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
void atoi_ex(char *ch,int* &ans,int radix)
{
int num=sizeof(*ans)/sizeof(int);
int *arr=new int[num];
char *pCh=new char[9];
for(int i=0;i<num;i++)
{
strncpy(pCh,ch,8);
strcat(pCh,0);
arr[i]=atoi(pCh);
itoa(arr,pCh,radix);
ans[i]=atoi(pCh);
}
}

[此贴子已经被作者于2006-10-18 14:55:01编辑过]


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-10-18 14:54
huanguyu
Rank: 1
等 级:新手上路
帖 子:90
专家分:0
注 册:2006-4-26
收藏
得分:0 

。。。

[此贴子已经被作者于2006-10-19 22:07:20编辑过]


看越多书就发现自己越无知 于是就越想知道更多
2006-10-18 14:57
huanguyu
Rank: 1
等 级:新手上路
帖 子:90
专家分:0
注 册:2006-4-26
收藏
得分:0 
wfpd 解释一下你的代码吧  偶看不懂- =

看越多书就发现自己越无知 于是就越想知道更多
2006-10-18 15:00
Meixu
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2006-10-12
收藏
得分:0 
以下是引用wfpb在2006-10-18 14:54:29的发言:
void atoi_ex(char *ch,int* &ans,int radix)
{
int num=sizeof(*ans)/sizeof(int);
int *arr=new int[num];
char *pCh=new char[9];
for(int i=0;i<num;i++)
{
strncpy(pCh,ch,8);
strcat(pCh,0);
arr[i]=atoi(pCh);
itoa(arr,pCh,radix);
ans[i]=atoi(pCh);
}
}

VC++编译通不过出现如下错误:
E:\C++文件\string01.cpp(14) : error C2664: 'itoa' : cannot convert parameter 1 from 'int *' to 'int'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast

是否把arr强制转换一下,这一行是否可改为itoa((int)arr,pCH,radix);
改了之后编译通过。


多看、多练、多写
2006-10-18 20:07
Meixu
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2006-10-12
收藏
得分:0 
以下是引用wfpb在2006-10-18 14:54:29的发言:
void atoi_ex(char *ch,int* &ans,int radix)
{
int num=sizeof(*ans)/sizeof(int);
int *arr=new int[num];
char *pCh=new char[9];
for(int i=0;i<num;i++)
{
strncpy(pCh,ch,8);
strcat(pCh,0);
arr[i]=atoi(pCh);
itoa(arr,pCh,radix);
ans[i]=atoi(pCh);
}
}

我对这段代码还是不怎么了解,只能把“12345678”转换为“0xBC614E”不能转换为所要的结果“0x12345678”,还有就是遇到字母(ABCDEF)就不能转换为数字了。


多看、多练、多写
2006-10-19 07:39
woodhead
Rank: 3Rank: 3
等 级:新手上路
威 望:9
帖 子:1124
专家分:0
注 册:2005-7-18
收藏
得分:0 
12345678(hex) = 305419896(dec)  = 1*2^28 + 2*2^24 + 3*2^20 + 4*2^16 + 5*2^12 + 6*2^8 + 7*2^4 + 8*2^0 (dec)

2006-10-19 08:42
wangxiang
Rank: 2
等 级:新手上路
威 望:5
帖 子:376
专家分:0
注 册:2006-3-28
收藏
得分:0 
woodhead
给个代码

2006-10-19 10:07
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
哦,不好意思,写错了,也没试就直接写了,错误还真不少。


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-10-19 10:35
Meixu
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2006-10-12
收藏
得分:0 
以下是引用woodhead在2006-10-19 8:42:24的发言:
12345678(hex) = 305419896(dec) = 1*2^28 + 2*2^24 + 3*2^20 + 4*2^16 + 5*2^12 + 6*2^8 + 7*2^4 + 8*2^0 (dec)

首先说的“12345678”是一个字符串, 这个字符串有可能是“12ABCDEF”,不是一个十六进制数,这里是要把它转换成一个十六进制数。


多看、多练、多写
2006-10-19 13:18
快速回复:字符串如何转换为十六进数?
数据加载中...
 
   



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

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