constk

Task_1a_Masks

Oct 15th, 2019
165
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <stdio.h>
  3. #include <iostream>
  4.  
  5. int main() {
  6. setlocale(0, "Russian");
  7.  
  8. unsigned long x, _1byte, _4byte;
  9.  
  10. puts("Задание 1а. Поменять местами 1 и 4 байт");
  11. puts("4 байтогого числа. 4 байт инвертировать.\n");
  12. printf("Введите целое шестнадцатеричное число: ");
  13. scanf("%x", &x);
  14.  
  15. _1byte = x & 0x000000FF; //0000 0000 0000 0000 0000 0000 1111 1111
  16. _4byte = x & 0xFF000000; //1111 1111 0000 0000 0000 0000 0000 0000
  17. x = x & 0x00FFFF00; //0000 0000 1111 1111 1111 1111 0000 0000
  18. _1byte = _1byte << 24;
  19. _4byte = _4byte >> 24;
  20. _4byte = _4byte ^ 0x000000FF;//0000 0000 0000 0000 0000 0000 1111 1111
  21. x = x | _1byte;
  22. x = x | _4byte;
  23.  
  24. printf("Изменённое число: %x\n", x);
  25.  
  26. system("pause");
  27. return 0;
  28. }
RAW Paste Data