CopyBits(x,p,n,y)
copy n LSBs from y to x starting LSB at 'p'th position.
Answer Posted / 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 |
Post New Answer View All Answers
Explain is it better to bitshift a value than to multiply by 2?
What are identifiers in c?
What is the difference between array and linked list in c?
How can you find the exact size of a data type in c?
What is a buffer in c?
What are data structures in c and how to use them?
What are the general description for loop statement and available loop types in c?
Why is main function so important?
PROGRAM TO WRITE CONTENTS OF 1 FILE IN REVERSE TO ANOTHER FILE,PROGRAM TO COPY 1 FILE TO ANOTHER BY SPECIFYING FILE NAMES AS COMMAND LINE
a c code by using memory allocation for add ,multiply of sprase matrixes
Do you know what are the properties of union in c?
program for reversing a selected line word by word when multiple lines are given without using strrev
What are the 5 elements of structure?
Can I use base-2 constants (something like 0b101010)? Is there a printf format for binary?
Why do we use stdio h and conio h?