Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- #include <stdlib.h>
- #include <stdbool.h>
- #define BYTE unsigned char
- typedef
- struct light
- {
- char status;
- char red;
- char green;
- char blu;
- char brightness;
- };
- void prnBin(BYTE byte)
- {
- for (int i = 7; i >= 0; --i)
- {
- printf("%d", byte >> i & 1);
- }
- printf("\n");
- }
- void packaging(int num, char * number1)
- {
- printf("\n P= ");
- for (int i = 0, a = 128; i < 8; ++i)
- {
- number1[i] = num / a;
- num %= a;
- a /= 2;
- }
- printf("\n");
- }
- int unpacking(char* number1)
- {
- int num = 0;
- printf("\n UnP= ");
- for (int i = 0, a = 128; i < 8; ++i)
- {
- num += number1[i] * a;
- a /= 2;
- }
- return num;
- }
- void printn(char* number1)
- {
- for (int i = 0; i < 8; ++i)
- {
- printf("%d", number1[i]);
- }
- printf("\n");
- }
- void printb(char* bright)
- {
- printf("B = ");
- for (int i = 0; i < 4; ++i)
- {
- printf("%d", bright[i]);
- }
- printf("\n");
- }
- void shorter(char* number2, char* bright)
- {
- char check = 0;
- for (int i = 4, j = 0; i < 8; ++i, ++j)
- {
- if (number2[i] > 0)
- {
- ++check;
- }
- if (check > 0)
- {
- bright[j] = number2[i];
- }
- }
- }
- int setSettings(char _status,char _brightness,char red, char green , char blu,char * number1)
- {
- number1[0] = _status;
- char* number = (char*)malloc(sizeof(char) * 8);
- char* bright = (char*)malloc(sizeof(char) * 4);
- packaging(_brightness,number);
- shorter(number, bright);
- for (int i = 0; i < 4; ++i)
- {
- number1[i + 1] = bright[i];
- }
- free(number);
- free(bright);
- number1[5] = red;
- number1[6] = green;
- number1[7] = blu;
- return unpacking(number1);
- }
- int main(int argc, char argv[])
- {
- char *number = (char*)malloc(sizeof(char) * 8);
- char* bright = (char*)malloc(sizeof(char) * 4);
- BYTE a = 23;
- prnBin(a);
- prnBin(3 << 4);
- a = a ^ 3 << 4;
- prnBin(a);
- packaging(10,number);
- printn(number);
- shorter(number, bright);
- printb(bright);
- printf("%d\n", unpacking(number));
- packaging(8,number);
- printf("\n");
- printn(number);
- printf("\nend = %d\n", setSettings(1, 8, 1, 1, 0, number));
- printn(number);
- printf("%d\n", unpacking(number));
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement