Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- void printHexAndBits(unsigned num){
- printf("%x\t%u\t",num,num);
- int i=1;
- for ( unsigned mask = ~( ~0u >> 1 ); mask ; mask >>= 1, i++ ){
- if ( num & mask){
- putchar('1');
- }
- else {
- putchar('0');
- }
- if (i%4==0){
- putchar(' ');
- }
- }
- putchar('\n');
- }
- unsigned consecutiveBits(unsigned num){
- unsigned segments=1;
- unsigned bitSegment = 1 - (num & 1);
- unsigned bitNew;
- for ( ; num ; num>>=1 ){
- bitNew = num & 1;
- if (bitNew != bitSegment){
- bitSegment = 1 - bitSegment;
- segments++;
- }
- }
- return segments;
- }
- int main(){
- unsigned n=0xd3f3;
- printHexAndBits(n);
- printf("%u",consecutiveBits(n));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement