Advertisement
avr39-ripe

bitOperationsSBD

May 2nd, 2020
721
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.44 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. char* encodecode(char* str, char key)
  4. {
  5.     char* start{ str };
  6.  
  7.     while (*str)
  8.     {
  9.         *str++ ^= key;
  10.     }
  11.  
  12.     return start;
  13. }
  14.  
  15. int main()
  16. {
  17.     uint8_t ip  { 0b10110101 }; // /4 net = 0b10110000 host = 0b00000101
  18.     uint8_t ip1 { 0b10110011 }; // /4
  19.     uint8_t ip2 { 0b11010001 }; // /4
  20.     uint8_t mask{ 0b11110000 };
  21.     uint8_t res{ 0b00000101 };
  22.  
  23.     uint8_t net{};
  24.     uint8_t host{};
  25.     // 0b11110000
  26.     // 0b00001111
  27.  
  28.     // 0b10110101
  29.     // 0b00001111
  30.     // 0b00000101
  31.  
  32.  
  33.     //net = ip & mask;
  34.     //host = ip & (~mask);
  35.     //std::cout << (host == res) << '\n';
  36.  
  37.     std::cout << "IP1: " << ((ip & mask) == (ip1 & mask)) << '\n';
  38.     std::cout << "IP2: " << ((ip & mask) == (ip2 & mask)) << '\n';
  39.  
  40.     return 0;
  41.  
  42.     char str[30]{ "Hello, super secret world!" };
  43.     char key{ 'Q' };
  44.     std::cout << str << '\n';
  45.     std::cout << encodecode(str, key) << '\n';
  46.     std::cout << encodecode(str, 'R') << '\n';
  47.     std::cout << encodecode(str, 'R') << '\n';
  48.     std::cout << encodecode(str, key) << '\n';
  49.  
  50.     return 0;
  51.  
  52.     uint8_t byteA{ 0b01001001 };
  53.     uint8_t byteB{ 0b10101101 };
  54.    
  55.     // 0b01001001
  56.     // 0b10101101
  57.  
  58.     // 0b11100100
  59.     // 0b10101101
  60.  
  61.     // 0b01001001
  62.  
  63.     //a = a | b -> a |= b
  64.     //a = a & b -> a &= b
  65.     //a = a ^ b -> a ^= b
  66.     //a = a >> b -> a >>=b
  67.     //a = a << b -> a <<=b
  68.     //std::cout << +byte << '\n';
  69.     //res = byteA & byteB;
  70.     //std::cout << +byte << '\n';
  71.     std::cout << (byteA ^ byteB) << '\n';
  72.     std::cout << ((byteA ^ byteB) == res) << '\n';
  73.  
  74.  
  75. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement