Golgappa.net | Golgappa.org | BagIndia.net | BodyIndia.Com | CabIndia.net | CarsBikes.net | CarsBikes.org | CashIndia.net | ConsumerIndia.net | CookingIndia.net | DataIndia.net | DealIndia.net | EmailIndia.net | FirstTablet.com | FirstTourist.com | ForsaleIndia.net | IndiaBody.Com | IndiaCab.net | IndiaCash.net | IndiaModel.net | KidForum.net | OfficeIndia.net | PaysIndia.com | RestaurantIndia.net | RestaurantsIndia.net | SaleForum.net | SellForum.net | SoldIndia.com | StarIndia.net | TomatoCab.com | TomatoCabs.com | TownIndia.com
Interested to Buy Any Domain ? << Click Here >> for more details...


CopyBits(x,p,n,y)
copy n LSBs from y to x starting LSB at 'p'th position.

Answers were Sorted based on User's Feedback



CopyBits(x,p,n,y) copy n LSBs from y to x starting LSB at 'p'th position...

Answer / mohammed sardar

Sorry above answer ; I did a mistake
t=0;
for(i=n; i>0; i--)
{
t|=(1<<p);
p++;
}
x=x&~t
t=t&y;
x=x|t;

Is This Answer Correct ?    1 Yes 0 No

CopyBits(x,p,n,y) copy n LSBs from y to x starting LSB at 'p'th position...

Answer / yash

t =((~(~0<<n))<<p)
x = x & ~t;
y = y & t;
x=x|y;

Is This Answer Correct ?    1 Yes 0 No

CopyBits(x,p,n,y) copy n LSBs from y to x starting LSB at 'p'th position...

Answer / angad

t=0;
for(i=n; i>0; i--)
{
t|=(1<<p);
p++;
}
x=x&~t
t=t&(y<<p);
x=x|t;
}

x=10100110
y=11110111
let,p=3,n=4

after for loop, t=01111000 - mask for the n(=4) bits starting from the p(=3) bit that need to be altered in x

x=x&~t;
x =10100110
~t=10000111
ANDing clears the 4 bits to zero(bits 3-6)
x=1 0000 111

we need to extract the 1st n(=4) bits out of y , and shift them left to align them against the n(=4) bits of x we need to alter, therefore, left shift y by p(=3)
t=t&(y<<p)

y<<p = 1 0111 000
t = 0 1111 000
AND=>t = 0 0111 000

now x = 1 0000 111
t = 0 0111 000

x=x|t =>1 0111 111

Is This Answer Correct ?    1 Yes 0 No

CopyBits(x,p,n,y) copy n LSBs from y to x starting LSB at 'p'th position...

Answer / mohammed sardar

t=0;
for(i=n; i>0; i--)
{
t|=(1<<p);
p++;
}
t=t&y;
x=x&t;

Is This Answer Correct ?    0 Yes 0 No

CopyBits(x,p,n,y) copy n LSBs from y to x starting LSB at 'p'th position...

Answer / rakesh

It should be p--, not p++. for example y = 217 (11011001)
and you want to extract the least 4 SB then n = 4 and p = 3
(remember the number start from 0 to 7 in memory). After
executing this you will get x = 9 i.e 1001.

t=0;
for(i=n; i>0; i--)
{
t |= (1<<p);
p--;
}
x=x&~t;
t=t&y;
x=x|t;

Is This Answer Correct ?    0 Yes 0 No

CopyBits(x,p,n,y) copy n LSBs from y to x starting LSB at 'p'th position...

Answer / vadivel t

Hi,
The below code ll giv desired o/p.

#include<stdio.h>
#include<conio.h>

int main()
{
int x, y, n , p, i, j, temp;
printf("ENTER X, Y, NO OF BITS AND BIT POSITION: \n");
scanf("%d %d %d %d",&x, &y, &n, &p);
for(i = p, j = 0; i < n+p; i++, j++)
{
if(x & (0x01 << i))
x = x^(0x01<<i);
temp = y & (0x01<<j) ? 1 : 0;
x = x | (temp << i-1);
}
printf("VALUE OF X:%d \n",x);
getch();
}

Is This Answer Correct ?    0 Yes 0 No

CopyBits(x,p,n,y) copy n LSBs from y to x starting LSB at 'p'th position...

Answer / vadivel t

Hi,
Small bug is there in the above code, which i have posted.
But the same has been resolved here.

#include<stdio.h>
#include<conio.h>

int main()
{
int x, y, n , p, i, j, temp;
printf("ENTER X, Y, NO OF BITS AND BIT POSITION: \n");
scanf("%d %d %d %d",&x, &y, &n, &p);
for(i = p, j = 0; i < n+p; i++, j++)
{
if(x & (0x01 << i-1))
x = x^(0x01 << i-1);
temp = y & (0x01 << j) ? 1 : 0;
x = x | (temp << i-1);
}
printf("VALUE OF X:%d \n",x);
getch();
}

Is This Answer Correct ?    0 Yes 0 No

CopyBits(x,p,n,y) copy n LSBs from y to x starting LSB at 'p'th position...

Answer / vino

can you pls explain the above logic?

Is This Answer Correct ?    0 Yes 0 No

CopyBits(x,p,n,y) copy n LSBs from y to x starting LSB at 'p'th position...

Answer / intfail

all the above answers are wrong...
never use loops. immediate rejection

CopyBits(x, p, n, y)

First get n bits from pos p from Y

bitsFromy = y >> (p-n+1) & (~(~0<<n))

Now, get a mask such that we can 0 out bits in x at pos p and n bits to the right

startpos = p -n +1

create a mask from (startpos, p)
mask = (~0 << p - startpos +1)<<startpos | ~(~0 << startpos)

Now, 0 out the the bits in the locations (starpos, p) in x
and apply the bits extracted from y
x = (x & mask) | (bitsFromy << startpos)

that is all it takes.

Is This Answer Correct ?    0 Yes 0 No

Post New Answer

More C Interview Questions

What is the data segment that is followed by c?

0 Answers  


write a c program to print a given number as odd or even without using loop statements,(no if ,while etc)

10 Answers  


The purpose of this exercise is to benchmark file writing and reading speed. This exercise is divided into two parts. a). Write a file character by character such that the total file size becomes approximately >10K. After writing close the file handler, open a new stream and read the file character by character. Record both times. Execute this exercise at least 4 times b). Create a buffer capable of storing 100 characters. Now after generating the characters, first store them in the buffer. Once the buffer is filled up, store all the elements in the file. Repeat the process until the total file size becomes approximately >10K.While reading read a while line, store it in buffer and once buffer gets filled up, display the whole buffer. Repeat the exercise at least 4 times with different size of buffer (50, 100, 150 …). Records the times. c). Do an analysis of the differences in times and submit it in class.

0 Answers  


increment operateor (++)and decrament(--) #include<stdio.h> #inclide<conio.h> main() { int x=15; while(x!=0) scanf("%d",&x); {

2 Answers   HCL, Syntel, TCS,


Is using exit() the same as using return?

0 Answers  


hello everybody can we change a the adress of a variabl i mean can i put for exemple for a int *p: &p=6 ?????????

1 Answers  


void main() { int i=5; printf("%d",i+++++i); }

17 Answers   ME,


What is an lvalue in c?

0 Answers  


Write a C program to help a HiFi’s Restaurant automate its breakfast billing system. Your assignment should implement the following items: a. Show the customer the different breakfast items offered by the HiFi’s Restaurant. b. Allow the customer to select more than one item from the menu. c. Calculate and print the bill to the customer. d. Produce a report to present your complete program and show more sample output. Assume that the HiFi’s Restaurant offers the following breakfast menu: Plain Egg $2.50 Bacon and Egg $3.45 Muffin $2.20 French Toast $2.95 Fruit Basket $3.45 Cereal $0.70 Coffee $1.50 Tea $1.80

0 Answers  


which one is better structure or union?(other than the space occupied )

2 Answers  


Can we use visual studio for c?

0 Answers  


Study the following C program :call_me (myvar)int myvar;{ myvar +- 5; }main(){int myvar;myvar = 3;call_me(myvar);printf("%d ",myvar);What will be printed a) 3 b) 5 c) 8 d) symbol

0 Answers  


Categories