69,373
社区成员
发帖
与我相关
我的任务
分享
for (i=0;i<strlen(buf)/6;i++) { printf("%02x \n",num[i]); }
如果要在前面补0的话可以向上面那么写[/quote]
刚刚运行了下!果然是对的啊!好犀利啊!
太感谢了啊!
我看你很多位置*4%strlen(buf);或者*2%strlen(buf);这个不是很懂!
能讲下你的思路吗?
太感谢你了!
我写了半天都写不对![/quote]
POW是系统的函数pow(x,y) 求x的y次幂。
思路大概是这样的。。
先输入一个 16进制的数,然后转换为2进制的。
if(strlen(buf)%4!=0)
{
count=(strlen(buf)/4+1)*4%strlen(buf);
memcpy(buf+count,buf,strlen(buf));
for (i=0;i<count;i++)
{
buf[i]='0';
}
}
这里是因为itoa会去掉2进制前面的0,所以得把前面的0补上
if (strlen(buf)%6!=0)
{
a=a<<( (strlen(buf)/6+1)*2%(strlen(buf)));
}
这里是 4位转6位然后补0
有一个缺点就是,输入的16进制数要在int的范围内,不然会出错[/quote]
知道了!
太犀利了!
怎么不知道谢好!
给你50分吧!
再次谢了!
for (i=0;i<strlen(buf)/6;i++) { printf("%02x \n",num[i]); }
如果要在前面补0的话可以向上面那么写[/quote]
刚刚运行了下!果然是对的啊!好犀利啊!
太感谢了啊!
我看你很多位置*4%strlen(buf);或者*2%strlen(buf);这个不是很懂!
能讲下你的思路吗?
太感谢你了!
我写了半天都写不对![/quote]
POW是系统的函数pow(x,y) 求x的y次幂。
思路大概是这样的。。
先输入一个 16进制的数,然后转换为2进制的。
if(strlen(buf)%4!=0)
{
count=(strlen(buf)/4+1)*4%strlen(buf);
memcpy(buf+count,buf,strlen(buf));
for (i=0;i<count;i++)
{
buf[i]='0';
}
}
这里是因为itoa会去掉2进制前面的0,所以得把前面的0补上
if (strlen(buf)%6!=0)
{
a=a<<( (strlen(buf)/6+1)*2%(strlen(buf)));
}
这里是 4位转6位然后补0
有一个缺点就是,输入的16进制数要在int的范围内,不然会出错
for (i=0;i<strlen(buf)/6;i++) { printf("%02x \n",num[i]); }
如果要在前面补0的话可以向上面那么写[/quote]
看懂*4strlen(buf)和*2strlen(buf)做什么了,是为了补齐添加0.
最后问下Pow函数式做什么?