Advertisement
Guest User

Untitled

a guest
Oct 14th, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.22 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <stdbool.h>
  5. #define BYTE unsigned char
  6.  
  7.  
  8. typedef
  9. struct light
  10. {
  11. char status;
  12. char red;
  13. char green;
  14. char blu;
  15. char brightness;
  16.  
  17.  
  18. };
  19.  
  20. void prnBin(BYTE byte)
  21. {
  22. for (int i = 7; i >= 0; --i)
  23. {
  24. printf("%d", byte >> i & 1);
  25. }
  26. printf("\n");
  27. }
  28.  
  29. void packaging(int num, char * number1)
  30. {
  31. printf("\n P= ");
  32. for (int i = 0, a = 128; i < 8; ++i)
  33. {
  34.  
  35.  
  36. number1[i] = num / a;
  37. num %= a;
  38. a /= 2;
  39.  
  40. }
  41.  
  42.  
  43.  
  44. printf("\n");
  45.  
  46. }
  47.  
  48. int unpacking(char* number1)
  49. {
  50. int num = 0;
  51. printf("\n UnP= ");
  52. for (int i = 0, a = 128; i < 8; ++i)
  53. {
  54.  
  55.  
  56. num += number1[i] * a;
  57. a /= 2;
  58.  
  59. }
  60.  
  61.  
  62. return num;
  63.  
  64. }
  65.  
  66. void printn(char* number1)
  67. {
  68.  
  69. for (int i = 0; i < 8; ++i)
  70. {
  71. printf("%d", number1[i]);
  72. }
  73. printf("\n");
  74. }
  75. void printb(char* bright)
  76. {
  77. printf("B = ");
  78. for (int i = 0; i < 4; ++i)
  79. {
  80. printf("%d", bright[i]);
  81. }
  82. printf("\n");
  83. }
  84.  
  85.  
  86. void shorter(char* number2, char* bright)
  87. {
  88. char check = 0;
  89. for (int i = 4, j = 0; i < 8; ++i, ++j)
  90. {
  91. if (number2[i] > 0)
  92. {
  93. ++check;
  94. }
  95. if (check > 0)
  96. {
  97. bright[j] = number2[i];
  98. }
  99. }
  100. }
  101.  
  102. int setSettings(char _status,char _brightness,char red, char green , char blu,char * number1)
  103. {
  104. number1[0] = _status;
  105. char* number = (char*)malloc(sizeof(char) * 8);
  106. char* bright = (char*)malloc(sizeof(char) * 4);
  107. packaging(_brightness,number);
  108. shorter(number, bright);
  109. for (int i = 0; i < 4; ++i)
  110. {
  111. number1[i + 1] = bright[i];
  112. }
  113. free(number);
  114. free(bright);
  115. number1[5] = red;
  116. number1[6] = green;
  117. number1[7] = blu;
  118.  
  119.  
  120. return unpacking(number1);
  121. }
  122.  
  123.  
  124.  
  125. int main(int argc, char argv[])
  126. {
  127. char *number = (char*)malloc(sizeof(char) * 8);
  128. char* bright = (char*)malloc(sizeof(char) * 4);
  129.  
  130. BYTE a = 23;
  131. prnBin(a);
  132. prnBin(3 << 4);
  133. a = a ^ 3 << 4;
  134. prnBin(a);
  135. packaging(10,number);
  136. printn(number);
  137. shorter(number, bright);
  138. printb(bright);
  139. printf("%d\n", unpacking(number));
  140. packaging(8,number);
  141. printf("\n");
  142. printn(number);
  143.  
  144. printf("\nend = %d\n", setSettings(1, 8, 1, 1, 0, number));
  145. printn(number);
  146. printf("%d\n", unpacking(number));
  147. system("pause");
  148. return 0;
  149. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement