Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- #include <iostream>
- int main() {
- setlocale(0, "Russian");
- puts("Задание 3. Переставить старший и младший байты");
- puts("2 байтового числа, поменяв порядок следования битов в них\n");
- unsigned short x, byte1, byte2, bit1, bit2, bit3, bit4, bit5, bit6, bit7, bit8;
- printf("Введите целое шестнадцатеричное четырёхразрядное число число: ");
- scanf("%hx", &x);
- byte1 = x & 0x00ff;//0000 0000 1111 1111
- byte2 = x & 0xff00;//1111 1111 0000 0000
- //Разворачиваем 1 байт
- bit1 = byte1 & 0x0001;
- bit2 = byte1 & 0x0002;
- bit3 = byte1 & 0x0004;
- bit4 = byte1 & 0x0008;
- bit5 = byte1 & 0x0010;
- bit6 = byte1 & 0x0020;
- bit7 = byte1 & 0x0040;
- bit8 = byte1 & 0x0080;
- bit1 = bit1 << 7;
- bit2 = bit2 << 5;
- bit3 = bit3 << 3;
- bit4 = bit4 << 1;
- bit5 = bit5 >> 1;
- bit6 = bit6 >> 3;
- bit7 = bit7 >> 5;
- bit8 = bit8 >> 7;
- byte1 = 0;
- byte1 = byte1 | bit1;
- byte1 = byte1 | bit2;
- byte1 = byte1 | bit3;
- byte1 = byte1 | bit4;
- byte1 = byte1 | bit5;
- byte1 = byte1 | bit6;
- byte1 = byte1 | bit7;
- byte1 = byte1 | bit8;
- //################
- bit1 = 0;
- bit2 = 0;
- bit3 = 0;
- bit4 = 0;
- bit5 = 0;
- bit6 = 0;
- bit7 = 0;
- bit8 = 0;
- byte1 = byte1 << 8;
- byte2 = byte2 >> 8;
- //Разворачиваем 2 байт
- bit1 = byte2 & 0x0001;
- bit2 = byte2 & 0x0002;
- bit3 = byte2 & 0x0004;
- bit4 = byte2 & 0x0008;
- bit5 = byte2 & 0x0010;
- bit6 = byte2 & 0x0020;
- bit7 = byte2 & 0x0040;
- bit8 = byte2 & 0x0080;
- bit1 = bit1 << 7;
- bit2 = bit2 << 5;
- bit3 = bit3 << 3;
- bit4 = bit4 << 1;
- bit5 = bit5 >> 1;
- bit6 = bit6 >> 3;
- bit7 = bit7 >> 5;
- bit8 = bit8 >> 7;
- byte2 = 0;
- byte2 = byte2 | bit1;
- byte2 = byte2 | bit2;
- byte2 = byte2 | bit3;
- byte2 = byte2 | bit4;
- byte2 = byte2 | bit5;
- byte2 = byte2 | bit6;
- byte2 = byte2 | bit7;
- byte2 = byte2 | bit8;
- //################
- x = 0;
- x = x | byte1;
- x = x | byte2;
- printf("Изменённое число: %hx\n", x);
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement