| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
给出一个比较好理解的代码#include <iostream>
using namespace std;
int Calculate(char *arr,int low,int high)
{
int i,result=0;
for(i=low;i<=high;i++)
if(arr[i]-'0')//由于是字符数组,要将其值转为整型
result+=(1<<high-i);//1<<high-i是位运算,计算速度超快。相当于2^(high-i)
return result;
}
int main()
{
int n,i,j;
char data[33];//int data[n][33]刚开始用int型的二维数组,脑子肯定进水了
int hh,h,ll,l;
cin>>n;
while(n--)
{
cin>>data;
hh=Calculate(data,0,7);//高8位
h=Calculate(data,8,15);//次高8位
ll=Calculate(data,16,23);//低8位
l=Calculate(data,24,31);//最低8位,因为计算过程一致,所以直接用一个方法
cout<<hh<<'.'<<h<<'.'<<ll<<'.'<<l<<endl;
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator