Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
Solved

# Macro definition to write a program to test a bit.

Posted on 2003-12-09
Medium Priority
279 Views

how do you write a macro to test whether a bit in a byte is set or not set?

For example if we want to test the fourth bit of a byte, how do we do it using the macro.

0
Question by:suresh204
[X]
###### Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

• Help others & share knowledge
• Earn cash & points
• 2

LVL 45

Expert Comment

ID: 9909926
Hi suresh204,

#define ISSET4(X) (X)&(0x8)

Cheers!
Sunny:o)
0

LVL 45

Expert Comment

ID: 9909940
a small explanation is in order ...

given any byte say
1 1 0 1   1 0 1 0
to determine if nth bit is 1, bitwise AND it with a number which has all bits except nth bit as 0 ... here to determine, 4th bit we use
0 0 0 0   1 0 0 0

1 1 0 1   1 0 1 0
&   0 0 0 0   1 0 0 0
----------------------------------------------------
0 0 0 0    1 0 0 0
since answer is non zero, fourth bit is set

this is also referred to as masking .. since in the constant used, all other bits are set to 0 and 0 anded with anything gives a zero, the result depends on the only set bit in the constant (mask)
0

LVL 8

Accepted Solution

ssnkumar earned 200 total points
ID: 9910136
You can use the following macro also:
#define IS_BIT_SET(X, pos) (0x01 << (pos - 1)) & (X)

"pos" is the bit which you want to test for number "X". Count starts from right. So rightmost bit is 1, next is 2, etc.
0

## Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Preface I don't like visual development tools that are supposed to write a program for me. Even if it is Xcode and I can use Interface Builder. Yes, it is a perfect tool and has helped me a lot, mainly, in the beginning, when my programs were small…
This is a short and sweet, but (hopefully) to the point article. There seems to be some fundamental misunderstanding about the function prototype for the "main" function in C and C++, more specifically what type this function should return. I see so…
The goal of this video is to provide viewers with basic examples to understand opening and writing to files in the C programming language.
The goal of this video is to provide viewers with basic examples to understand and use while-loops in the C programming language.
###### Suggested Courses
Course of the Month8 days, 5 hours left to enroll