Advertisement
constk

Task_3_Masks

Oct 15th, 2019
272
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.16 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <stdio.h>
  3. #include <iostream>
  4.  
  5. int main() {
  6. setlocale(0, "Russian");
  7.  
  8. puts("Задание 3. Переставить старший и младший байты");
  9. puts("2 байтового числа, поменяв порядок следования битов в них\n");
  10.  
  11. unsigned short x, byte1, byte2, bit1, bit2, bit3, bit4, bit5, bit6, bit7, bit8;
  12.  
  13. printf("Введите целое шестнадцатеричное четырёхразрядное число число: ");
  14. scanf("%hx", &x);
  15.  
  16. byte1 = x & 0x00ff;//0000 0000 1111 1111
  17. byte2 = x & 0xff00;//1111 1111 0000 0000
  18.  
  19. //Разворачиваем 1 байт
  20. bit1 = byte1 & 0x0001;
  21. bit2 = byte1 & 0x0002;
  22. bit3 = byte1 & 0x0004;
  23. bit4 = byte1 & 0x0008;
  24. bit5 = byte1 & 0x0010;
  25. bit6 = byte1 & 0x0020;
  26. bit7 = byte1 & 0x0040;
  27. bit8 = byte1 & 0x0080;
  28.  
  29. bit1 = bit1 << 7;
  30. bit2 = bit2 << 5;
  31. bit3 = bit3 << 3;
  32. bit4 = bit4 << 1;
  33. bit5 = bit5 >> 1;
  34. bit6 = bit6 >> 3;
  35. bit7 = bit7 >> 5;
  36. bit8 = bit8 >> 7;
  37.  
  38. byte1 = 0;
  39.  
  40. byte1 = byte1 | bit1;
  41. byte1 = byte1 | bit2;
  42. byte1 = byte1 | bit3;
  43. byte1 = byte1 | bit4;
  44. byte1 = byte1 | bit5;
  45. byte1 = byte1 | bit6;
  46. byte1 = byte1 | bit7;
  47. byte1 = byte1 | bit8;
  48. //################
  49.  
  50. bit1 = 0;
  51. bit2 = 0;
  52. bit3 = 0;
  53. bit4 = 0;
  54. bit5 = 0;
  55. bit6 = 0;
  56. bit7 = 0;
  57. bit8 = 0;
  58.  
  59. byte1 = byte1 << 8;
  60. byte2 = byte2 >> 8;
  61.  
  62. //Разворачиваем 2 байт
  63. bit1 = byte2 & 0x0001;
  64. bit2 = byte2 & 0x0002;
  65. bit3 = byte2 & 0x0004;
  66. bit4 = byte2 & 0x0008;
  67. bit5 = byte2 & 0x0010;
  68. bit6 = byte2 & 0x0020;
  69. bit7 = byte2 & 0x0040;
  70. bit8 = byte2 & 0x0080;
  71.  
  72. bit1 = bit1 << 7;
  73. bit2 = bit2 << 5;
  74. bit3 = bit3 << 3;
  75. bit4 = bit4 << 1;
  76. bit5 = bit5 >> 1;
  77. bit6 = bit6 >> 3;
  78. bit7 = bit7 >> 5;
  79. bit8 = bit8 >> 7;
  80.  
  81. byte2 = 0;
  82.  
  83. byte2 = byte2 | bit1;
  84. byte2 = byte2 | bit2;
  85. byte2 = byte2 | bit3;
  86. byte2 = byte2 | bit4;
  87. byte2 = byte2 | bit5;
  88. byte2 = byte2 | bit6;
  89. byte2 = byte2 | bit7;
  90. byte2 = byte2 | bit8;
  91. //################
  92.  
  93. x = 0;
  94. x = x | byte1;
  95. x = x | byte2;
  96.  
  97. printf("Изменённое число: %hx\n", x);
  98.  
  99. system("pause");
  100. return 0;
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement