Skip to content

Instantly share code, notes, and snippets.

@antonio081014
Created December 1, 2015 01:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save antonio081014/e603e960d259c56739c9 to your computer and use it in GitHub Desktop.
Save antonio081014/e603e960d259c56739c9 to your computer and use it in GitHub Desktop.
This is an implementation of Basic Bit Manipulation Operation written in Objective-C.
- (BOOL)getBitforNumber:(NSInteger)num atIndex:(NSUInteger)i
{
return (num & (1 << i)) != 0;
}
- (NSInteger)setBitforNumber:(NSInteger)num atIndex:(NSUInteger)i
{
return num | (1 << i);
}
- (NSInteger)clearBitforNumber:(NSInteger)num atIndex:(NSUInteger)i
{
NSInteger mask = ~(1 << i);
return num & mask;
}
- (NSInteger)clearBitsforNumber:(NSInteger)num throughIndexI:(NSUInteger)i
{
NSInteger mask = ~((1 << (i + 1)) - 1);
return num & mask;
}
- (NSInteger)updateBitforNumber:(NSInteger)num atIndex:(NSUInteger)i withValue:(NSUInteger)v
{
NSInteger mask = ~(1 << i);
return (num & mask) | (v << i);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment