Advertisement
avr39-ripe

bitOperationBBV192

Apr 29th, 2020
447
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.65 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. void encode(char* str, char key)
  4. {
  5.     while(*str)
  6.     {
  7.         *str = *str ^ key;
  8.         ++str;
  9.     }
  10. }
  11.  
  12. int main()
  13. {
  14.  
  15.     uint8_t ip      {0b10110101}; // /4
  16.     uint8_t mask    {0b11110000};
  17.  
  18.     uint8_t net{ 0 };
  19.     uint8_t host{ 0 };
  20.  
  21.     net =  (ip & mask) >> 4;
  22.     // ip   0b10110101
  23.     // mask 0b11110000
  24.     // net  0b10110000 >> 4 -> 0b00001011;
  25.     host = ip & (~mask);
  26.     // mask     0b11110000
  27.     // ~mask    0b00001111
  28.     // ip       0b10110101
  29.     // host     0b00000101
  30.  
  31.     std::cout << "IP: " << +ip << " NETMASK: " << +mask << '\n';
  32.     std::cout << "NET: " << +net << " HOST: " << +host << '\n';
  33.  
  34.  
  35.     //a |= b -> a = a | b
  36.     //a &= b -> a =a & b
  37.     //a ^= b -> a =a ^ b
  38.  
  39.  
  40.     //char str[50]{ "Hello, bright world!" };
  41.     //char key{ 'Z' };
  42.  
  43.     //std::cout << "Original message:\n" << str << '\n';
  44.     //encode(str, key);
  45.     //std::cout << "Encoded message:\n" << str << '\n';
  46.     //encode(str, 'G');
  47.     //std::cout << "Decoded message:\n" << str << '\n';
  48.     //encode(str, 'G');
  49.     //encode(str, key);
  50.     //std::cout << "Decoded message:\n" << str << '\n';
  51.  
  52.  
  53.     //uint8_t byteA{ 0b00101010 };
  54.     //uint8_t byteB{ 0b10011001 };
  55.     //uint16_t word{ 0b1000000000000000 };
  56.     //float x{ 36.6 };
  57.     //// 0b00101010 Val
  58.     //// 0b10011001 Key
  59.  
  60.     //// 0b10110011 Res
  61.     //// 0b10011001 Key
  62.  
  63.     //// 0b00101010 Res1
  64.     //// 0b00101010 Val
  65.  
  66.     //// 0b0000000000000001
  67.     //uint8_t res{ 0b10110011 };
  68.  
  69.     //std::cout << (int)(byteA ^ byteB) << '\n';
  70.     //std::cout << (int)res << '\n';
  71.  
  72.     ////std::cout << (int)word << '\n';
  73.     ////word = word >> 15;
  74.     ////std::cout << (int)word << '\n';
  75.     ////return 0;
  76.  
  77.     ////std::cout << (int)byte << '\n';
  78.  
  79.     ////byte = byte >> 2;
  80.  
  81.     ////std::cout << (int)byte << '\n';
  82.  
  83.    
  84.  
  85.    
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement