求一关于字符串变换的函数,最简单的,自己水平太差,自己写太慢了。

冰霜icefrost 2005-09-01 11:11:26
是将MAC地址转换为EUI-64 ,再将其转换为IPv6的函数。
具体算法如下:
如MAC地址为 :00-AA-00-3F-2A-1C
1) 在中间插入两组数,FF FE 就是11111111 11111110 (0xFFFE)
EUI-64: 00-AA-00-FF-FE-3F-2A-1C

2)对上述第一组数(00)的第二个低位取反,实际是0000 0000
变化为0000 0010

最终的结果是:
02-AA-00-FF-FE-3F-2A-1C

初学VC,什么字符变换,进位变化,数据类型转换,具体函数不太清楚。
哪位能帮帮忙,谢谢了。


...全文
157 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lixiaosan 2005-09-01
  • 打赏
  • 举报
回复
00-AA-00-3F-2A-1C 是字符串么?

如果是
CString str;
str = "00-AA-00-3F-2A-1C";
str.Insert(9, "FF-FE-");//00-AA-00-FF-FE-3F-2A-1C

char ch = str.GetAt(1);
ch ^= 0x02;
str.SetAt(1, ch);


everandforever 2005-09-01
  • 打赏
  • 举报
回复
倒.多年不用,把异或符号忘了...
everandforever 2005-09-01
  • 打赏
  • 举报
回复
int iTemp[8];
fscanf( szMac, "%x-%x-%x-%x-%x-%x", iTemp,iTemp+1,iTemp+2,iTemp+5,iTemp+6,iTemp+7 );
iTemp[3] = 0x00FF;
iTemp[4] = 0x00FE;

( iTemp[0] & 2 ) ? (iTemp[0] &= (~2)):(iTemp[0] |= 2);

char szOutput[64];
sprintf( szOutput, "%02x-%02x-%02x-%02x-%02x-%02x-%02x-%02x", iTemp[0], iTemp[1], iTemp[2], iTemp[3], iTemp[4], iTemp[5], iTemp[6], iTemp[7] );
zxyjyzxyjy 2005-09-01
  • 打赏
  • 举报
回复
先取出需要的字符,再转换成整数(用atoi()函数)。再进行按位与操作(如int i = a^b//a,b为变量),再把数转成字符,可用如sprintf这样的函数,再把这些字符组合成想要的东西。
快乐鹦鹉 2005-09-01
  • 打赏
  • 举报
回复
错了一点,位置不对:
CString str = "00-AA-00-3F-2A-1C";
str.Insert(9,"FF-FE-");
char ch = str.GetAt(1);
ch ^= 0x02;
str.SetAt(1,ch);
以上代码以测试,结果为: 02-AA-00-FF-FE-3F-2A-1C
:>:>
快乐鹦鹉 2005-09-01
  • 打赏
  • 举报
回复
简单点:
CString str = "00-AA-00-3F-2A-1C";
str.Insert(8,"FF-FE-");
char ch = str.GetAt(1);
ch ^= 0x02;
str.SetAt(1,ch);
冰霜icefrost 2005-09-01
  • 打赏
  • 举报
回复
谢谢各位了,

原来这么简单就可以实现了,
我试下。

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧