Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- unsigned char ucA = 0b10101100;
- const char* checkFlagCharV1(unsigned char ucVal, unsigned char ucPos)
- {
- if(ucPos>7) return "error: pos out of range. (0-7)";
- unsigned char ucB = 1u << ucPos;
- if(ucVal & ucB) return "true ";
- else return "false ";
- }
- const char* checkFlagCharV2(unsigned char ucVal, unsigned char ucPos)
- {
- if(ucPos<1||ucPos>8) return "error: pos out of range. (1-8)";
- unsigned char ucB = 1u << (ucPos - 1);
- if(ucVal & ucB) return "true ";
- else return "false ";
- }
- int main (int argc, char **argv){
- int bit_pos = 8;
- while(bit_pos--)
- {
- unsigned char ucB = 1u << bit_pos;
- printf("%s", ucA & ucB ? "true " : "false ");
- }
- printf("\n");
- for(bit_pos = 0; bit_pos < 8; bit_pos++)
- {
- unsigned char ucB = 1u << bit_pos;
- printf("%s", ucA & ucB ? "true " : "false ");
- }
- printf("\n");
- printf("%s",checkFlagCharV1(ucA,0));
- printf("%s",checkFlagCharV1(ucA,1));
- printf("%s",checkFlagCharV1(ucA,2));
- printf("%s",checkFlagCharV1(ucA,3));
- printf("%s",checkFlagCharV1(ucA,4));
- printf("%s",checkFlagCharV1(ucA,5));
- printf("%s",checkFlagCharV1(ucA,6));
- printf("%s",checkFlagCharV1(ucA,7));
- printf("\n");
- printf("%s",checkFlagCharV2(ucA,1));
- printf("%s",checkFlagCharV2(ucA,2));
- printf("%s",checkFlagCharV2(ucA,3));
- printf("%s",checkFlagCharV2(ucA,4));
- printf("%s",checkFlagCharV2(ucA,5));
- printf("%s",checkFlagCharV2(ucA,6));
- printf("%s",checkFlagCharV2(ucA,7));
- printf("%s",checkFlagCharV2(ucA,8));
- printf("\n");
- printf("%s\n",checkFlagCharV1(ucA,-1));
- printf("%s\n",checkFlagCharV1(ucA,8));
- printf("%s\n",checkFlagCharV2(ucA,-1));
- printf("%s\n",checkFlagCharV2(ucA,10));
- return 0;
- }
- /*
- output:
- true false true false true true false false
- false false true true false true false true
- false false true true false true false true
- false false true true false true false true
- error: pos out of range. (0-7)
- error: pos out of range. (0-7)
- error: pos out of range. (1-8)
- error: pos out of range. (1-8)
- */
Advertisement
Add Comment
Please, Sign In to add comment