-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpractice5.cpp
More file actions
37 lines (34 loc) · 899 Bytes
/
practice5.cpp
File metadata and controls
37 lines (34 loc) · 899 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <stdio.h>
#include <stdlib.h>
int main()
{
unsigned int pack_unpack,coded_number,H,T,S;
printf("Write 0 to pack, 1 to unpack\n");
scanf("%u", &pack_unpack);
if ( pack_unpack != 0 && pack_unpack != 1)
{
printf("Invalid input");
return 0;
}
else if (!pack_unpack)
{
coded_number = 0;
printf("Write H,T,S\n");
scanf("%u%u%u",&H,&T,&S);
coded_number = coded_number | (H << 14);
coded_number = coded_number | (T << 5);
coded_number = coded_number | (S);
printf("%4x",coded_number);
return 0;
}
else
{
printf("Write coded number\n");
scanf("%x",&coded_number);
H = (coded_number >> 14);
T = (coded_number & 16352) >> 5;
S = (coded_number & 31);
printf("%u %u %u",H,T,S);
return 0;
}
}