1: main()
2: {
3: int i = 0x1234,pos = 1;
4: while(i)
5: {
6: if ( i & 0x01)
7: {
8: printf("%d\n",pos);
9: }
10: i = i>>1;
11: pos++;
12: }
13: }
RTOS, Linux Kernel internal, OS-Programming C & Data Structures, Debugging, Optimizations, Makefiles and Wireless Technologies (Wi-Fi ,LTE and LTE-Advanced )
Search This Blog
Sunday, October 5, 2014
WAP to display all set bit position in a given 32-bits number
WAP to shift all one's at one side in a given 32-bits number. i.e num = 0xcccccccc o/p - 0xffff0000
1: main()
2: {
3: unsigned int num = 0xcccccccc;
4: unsigned int res = 0,b1= 0,count=0;
5: printf("Num : 0x%x\n",num);
6: while(num)
7: {
8: if(num & 1)
9: {
10: b1 = (b1 << 1) | 1;
11: count++;
12: }
13: num >>= 1;
14: }
15: num = b1 << count;
16: printf("Result : 0x%x\n",num);
17: }
WAP to swap adjacent bits in a given 32-bits number
1: main()
2: {
3: int num;
4: printf("Enter No:");
5: scanf("%d",&num);
6: printf("rev = %d\n",(num>>1 & 0x55555555 | num<<1 & 0xaaaaaaaa));
7: }
WAP to find number of set bits in a given 32-bits number
1: main()
2: {
3: int num = 0x1fa12cde,count = 0;
4: while(num)
5: {
6: if(num & 1)
7: {
8: count++;
9: }
10: num = num >>1;
11: }
12: printf("Number of set bits = %d\n",count);
13: }
WAP to swap two nibbles in a given number
1: main()
2: {
3: unsigned int num = 0xfc;
4: num = (num>>4 & 0x0f) | (num<<4 & 0xf0);
5: printf("Result = 0x%x\n",num);
6: }
WAP to toggle all bits in a given 32-bits number
1: main()
2: {
3: unsigned int num = 0x4532fc1a; // Any 32-bits integer
4: unsigned int inv = i ^ 0xffffffff;
5: printf("inv = %x\n",inv);
6: }
WAP to overlap the bits from one number to another given number if the overlapping bit position is given
1: main()
2: {
3: int num1 = 0xffffffff;
4: int num2 = 0x12345678,c = 0;
5: int p1=0,p2=0;
6: int mask = 0;
7: // Enter the overlapping bits position
8: printf("Enter first overlapping bit position:");
9: scanf("%d",&p1);
10: printf("Enter second overlapping bit position:");
11: scanf("%d",&p2);
12: mask |= (1 << p1-1);
13: mask |= (1 << p2-1);
14: c = num2 & mask;
15: num1 |= c;
16: printf("After overlapping = %d\n",num1);
17: }
Subscribe to:
Posts (Atom)