昨天 kaikai突然发了一个POST:
kaikai:
看看能不能把这个程序改得更短
?

#include
<
cstdio
>
int
main()
{
char*a,b[33];
scanf("%*d");
while(scanf("%s",b)==1)
{
int d=0;
for(a=b;*a;)d=d*2|*a++%2;
printf("%d.%d.%d.%d\n",d>>24&255,d>>16&255,d>>8&255,d&255);
}
return 0;
}
写了一个测试:
#include
<
iostream
>
#include
<
bitset
>
using
namespace
std;
void
main()
{
bitset<32> a;
cin >> a;
cout << a.to_ulong() << endl;
}
补充:
经过wang.lj 网友的提醒,才发现C库中还有一个函数,就是用来将数字串以指定的数制转换成整数的:
i = strtol(s, &end, 2); //二进制流转换为16进制字符串
本文介绍了一种使用C++标准库bitset进行二进制输入并转换为十进制输出的方法,提供了一种简便的方式来处理二进制数据。同时提到了使用strtol函数将二进制字符串转换为整数。
607

被折叠的 条评论
为什么被折叠?



