123456789101112131415161718192021222324252627282930313233343536 |
- #include<bits/stdc++.h>
- using namespace std;
- void to2(int n){
- string s="00000000";
- int t=7;
- while(n){
- s[t--]='0'+n%2;
- n/=2;
- }
- cout<<s;
- }
- int main(){
- string s;
- //freopen("1.txt","r",stdin);
- while(cin>>s){
- if(s.find('.')<s.size()){
- int a[4];
- sscanf(s.c_str(),"%d.%d.%d.%d",&a[0],&a[1],&a[2],&a[3]);
- for(int i=0;i<4;i++)
- to2(a[i]);
- }
- else{
- int k[8]={128,64,32,16,8,4,2,1},sum=0,t=0,flag=1;
- for(int i=0;i<s.size();i++){
- sum=sum+(s[i]-'0')*k[t++];
- if(t==8){
- t=0;
- flag?cout<<sum:cout<<"."<<sum;
- flag=0;
- sum=0;
- }
- }
- }
- cout<<endl;
- }
- }
|