toggle bit


 
Thread Tools Search this Thread
Top Forums Programming toggle bit
# 1  
Old 06-22-2010
toggle bit

how can I toggle all the bits of any given number using a shortest C code
# 2  
Old 06-22-2010
Invert it. See Wikipedia on Bitwise operation and your courses learning material.
# 3  
Old 06-22-2010
The direct answer to your question :

Code:
int main() {
unsigned short int v = 7;                             // First 13  MSB == 0; Last 3 LSB == 1 --> 0000000000000111
unsigned short int toggled_bit = (0xffff ^ v) ; // toggled_bit now have a bits pattern  --> 1111111111111000

   printf("Actual Variable == %u --- toggled bit value %u\n", v, toggled_bit);
}


The shortest answer, isn;t it?

Now a bigger code; write a function Smilie

Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/errno.h>

unsigned short toggleBits ( unsigned short a_val) {
   return (0xffff ^ a_val);
};

int main(int argc, **argv) {
unsigned short int val = 0;
   if(argc < 2) exit(1);
   val = (unsigned short) atoi(argv[1]);
   printf(" val == %u\n" , val);
   for(int i = 0; i < 4; i++) {
      val = toggleBits(val);
      printf(" val == %u\n" , val);
   } 
   return 0;
}

However, if you wana just toggle a single bit (say n'th bit) , then instead of FFFF, use a value equivalent to 2^n (2 to the power n) and do the XOR operation exactly similar to the above code.

Let me know, if you need any specific question. You still need to explore yourself a lot by writing simple codes doing such bitwise operation to get more clarity.

Last edited by Praveen_218; 06-22-2010 at 02:05 PM.. Reason: Typo mistake corrections and some minor additions ...
This User Gave Thanks to Praveen_218 For This Post:
# 4  
Old 06-22-2010
Ha, I can do shorter:
Code:
unsigned short int v = 7;
unsigned short int toggled_bit = ~v;

This User Gave Thanks to pludi For This Post:
# 5  
Old 06-22-2010
Debian

Smilie Ya the shortest one!!!!
# 6  
Old 06-23-2010
that solves the query
Login or Register to Ask a Question

Previous Thread | Next Thread

6 More Discussions You Might Find Interesting

1. Windows & DOS: Issues & Discussions

Which version of Windows Vista to install with a product key? 32-bit or 64-bit?

Hello everyone. I bought a dell laptop (XPS M1330) online which came without a hard drive. There is a Windows Vista Ultimate OEMAct sticker with product key at the bottom case. I checked dell website (here) for this model and it says this model supports both 32 and 64-bit version of Windows... (4 Replies)
Discussion started by: milhan
4 Replies

2. Shell Programming and Scripting

How to handle 64 bit arithmetic operation at 32 bit compiled perl interpreter?H

Hi, Here is the issue. From the program snippet I have Base: 0x1800000000, Size: 0x3FFE7FFFFFFFF which are of 40 and 56 bits. SO I used use bignum to do the math but summing them up I always failed having correct result. perl interpreter info, perl, v5.8.8 built for... (0 Replies)
Discussion started by: rrd1986
0 Replies

3. Shell Programming and Scripting

How to Toggle Flag/Switch Value with Sed

I am trying to figure out a one liner to toggle a flag variable. eg. FLAG=0 Is there a way to use sed to toggle above example between 0 and 1. That is if run with flag set to zero it would change it to one if run again it would set it to zero. I thought I had it figured but the... (6 Replies)
Discussion started by: bsquared
6 Replies

4. Shell Programming and Scripting

Perl script to toggle through dates by week

Hi, I need help to toggle through dates on a weekly basis to be fed into a script as inputs. The format should be: yyyy/mm/dd (start) yyyy/mm/dd (end), where end date is 7 days increments. The date (start) would be input as an ARGV and would continue until current date. I can check... (2 Replies)
Discussion started by: subhap
2 Replies

5. Shell Programming and Scripting

Toggle Hidden Files Mac OS X

Hi all, I have been using Ubuntu for 2 years now, and a few days ago I bought a Macbook. This is my first time using a Mac, so I have spent the better of two days learning the user interface, and configuring my Macbook. One thing I noticed is that there is no easy way to turn on and off hidden... (0 Replies)
Discussion started by: Omniwheel
0 Replies

6. Programming

copying or concatinating string from 1st bit, leaving 0th bit

Hello, If i have 2 strings str1 and str2, i would like to copy/concatenate str2 to str1, from 1st bit leaving the 0th bit. How do i do it? (2 Replies)
Discussion started by: jazz
2 Replies
Login or Register to Ask a Question