F.cpp 843 B

123456789101112131415161718192021222324252627282930313233343536
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. void to2(int n){
  4. string s="00000000";
  5. int t=7;
  6. while(n){
  7. s[t--]='0'+n%2;
  8. n/=2;
  9. }
  10. cout<<s;
  11. }
  12. int main(){
  13. string s;
  14. //freopen("1.txt","r",stdin);
  15. while(cin>>s){
  16. if(s.find('.')<s.size()){
  17. int a[4];
  18. sscanf(s.c_str(),"%d.%d.%d.%d",&a[0],&a[1],&a[2],&a[3]);
  19. for(int i=0;i<4;i++)
  20. to2(a[i]);
  21. }
  22. else{
  23. int k[8]={128,64,32,16,8,4,2,1},sum=0,t=0,flag=1;
  24. for(int i=0;i<s.size();i++){
  25. sum=sum+(s[i]-'0')*k[t++];
  26. if(t==8){
  27. t=0;
  28. flag?cout<<sum:cout<<"."<<sum;
  29. flag=0;
  30. sum=0;
  31. }
  32. }
  33. }
  34. cout<<endl;
  35. }
  36. }