Codeforwin
Learn C programming, Data Structures tutorials,
exercises, examples, programs, hacks, tips and
tricks online. A blog for beginners to advance
their skills in programming.
Skip to content
Home
Programming Basics
C Programming Tutorial
C Exercises
Basic C Exercises
Bitwise Operator Exercises
Conditional Operator Exercises
If else Exercises
Switch case Exercises
Loop Exercises
Star Patterns
Number Patterns
Functions Exercises
Array Exercises
String Exercises
Pointer Exercises
File handling Exercises
Data Structures
Articles
Write for Us
Search for: Search … Search
C program to toggle or invert nth bit of a number
January 24, 2016PankajC programmingBitwise operator, C, Program
Write a C program to input any number from user and toggle or invert or
flip nth bit of the given number using bitwise operator. How to toggle n th
bit of a given number using bitwise operator in C programming. C
program set nth bit of a given number if it is unset otherwise unset if it is
set.
Example
Input
Input number: 22
Input nth bit to toggle: 1
Output
After toggling nth bit: 20 (in decimal)
Required knowledge
Bitwise operators, Data types, Variables and Expressions, Basic
input/output
Logic to toggle nth bit of a number
Toggling bit means setting a bit in its complement state. Means if bit is
currently set then change it to unset and vice versa.
To toggle a bit we will use bitwise XOR ^ operator. Bitwise XOR operator
evaluates to 1 if corresponding bit of both operands are different
otherwise evaluates to 0. We will use this ability of bitwise XOR operator
to toggle a bit. For example - if Least Significant Bit of num is 1, then num ^
1 will make LSB of num to 0. And if LSB of num is 0, then num ^ 1 will
toggle LSB to 1.
Step by step descriptive logic to toggle nth bit of a number.
1. Input number and nth bit position to toggle from user. Store it in
some variable say num and n.
2. Left shift 1 to n times, i.e. 1 << n.
3. Perform bitwise XOR with num and result evaluated above i.e. num ^
(1 << n);.
Program to toggle or invert nth bit
/**
* C program to toggle nth bit of a number
*/
#include <stdio.h>
int main()
{
int num, n, newNum;
/* Input number from user */
printf("Enter any number: ");
scanf("%d", &num);
/* Input bit position you want to toggle */
printf("Enter nth bit to toggle (0-31): ");
scanf("%d", &n);
/*
* Left shifts 1, n times
* then perform bitwise XOR with num
*/
newNum = num ^ (1 << n);
printf("Bit toggled successfully.\n\n");
printf("Number before toggling %d bit: %d (in decimal)\n", n, num);
printf("Number after toggling %d bit: %d (in decimal)\n", n, newNum);
return 0;
}
Output
Enter any number: 22
Enter nth bit to toggle (0-31): 1
Bit toggled successfully.
Number before toggling 1 bit: 22 (in decimal)
Number after toggling 1 bit: 20 (in decimal)
Happy coding 😉
Recommended posts
Bitwise operator programming exercises index.
C program to get nth bit of a number.
C program to clear nth bit of a number.
C program to flip bits of a binary number using bitwise operator.
C program to get highest order set bit of a number.
C program to get lowest order set bit of a number.
report this ad
About Pankaj
Pankaj Prakash is the founder, editor and blogger at Codeforwin. He loves
to learn new techs and write programming articles especially for
beginners. He works at Vasudhaika Software Sols as a Software Design
Engineer and manages Codeforwin. In short Pankaj is Web developer,
Blogger, Learner, Tech and Music lover.
Follow on: Facebook | Twitter | Google | Website or View all posts by
Pankaj
Post navigation
←
Previous
C program to clear nth bit of a number
Next
C program to flip all bits of a binary number
→
Have a doubt, write here. I will help my best.
Before commenting you must escape your source code before
commenting. Paste your source code inside
<pre><code> ----Your Source Code---- </code></pre>
The Codeforwin Guy
Pankaj Prakash
Software developer, Blogger, Learner, Music Lover...
Facebook
Twitter
LinkedIn
Google+
C useful resources
C library reference
Learn C programming
The C programming - K&R
The C programming - K&R Pdf
Stack Overflow C
CodeBlocks, Dev C++
C Programming Exercises
Basic C programming exercises
Bitwise operator exercises
Conditional operator exercises
If else exercises
Switch case exercises
Loop and iteration exercises
Star patterns exercises
Number pattern exercises
Functions and recursion exercises
Array and Matrix exercises
String exercises
Pointer exercises
Files handling exercises
The best way to learn a new programming language is by
writing programs in it.
- Dennis Ritchie
Sitelinks
About
Feedback
Testimonials
Write for Us
Privacy policy
Terms of use
Follow us
Facebook
Google
Twitter
Linked In
© 2019 Codeforwin
Created with by Pankaj Prakash