Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Let x= 0xA5 and y= 0xABCDE and string s. 1) Mask the upper 4bits of x 2) clear b

ID: 3931998 • Letter: L

Question

Let x= 0xA5 and y= 0xABCDE and string s.

1) Mask the upper 4bits of x

2) clear bit 6 of x

3) set bit 9 of y

4) interchange x and low 8 bits of y without using a third variable or register

5) invert x.

6) shift left x four bits and shift right y two bits.

7) check if bit 4 of x is 0.

8) check if bit 10 of y is 1.

9) suppose the length s is 5. convert y into decimal ASCII string and put it into s.

10) suppose s-"ABCEXY". write a c function to covert s as "yxecba"

(4) intercbange x dad low 8 bits of y without using a tont variabl (6) Shift left four hits and shift ti (7) Check if bit 4 of s is 0 (s) Check bit 10 of y is Suppose the length s is 5. Convert y into decimal ASCIl string and put it into s. Write a C function to covert s as "yxecba" ABCEXY"

Explanation / Answer

Hello Thanks for giving clear description and Typing Question from Image

x= 0xA5 and y= 0xABCDE (Hexa Decimal Numbers. In Decimal(10) X=165 and 703710)

1) Mask the upper 4bits of x

----------------------------------------------------

                                  unsigned char value = 0xa5;
                           unsigned char mask = 0x0f;
                           unsigned char mask_result = (value & mask);

2) clear bit 6 of x :-

----------------------------------------

                                 unsigned char value = 0xa5;
                           unsigned char clear = 0xfb;
                           unsigned char clear_result = (value & clear);

3) set bit 9 of y :-

-----------------------------

                                unsigned int value = 0xabcde;
                                unsigned int set = 0x800;
                                 unsigned int set_result = (value | set);

4) interchange x and low 8 bits of y without using a third variable or register :-

---------------------------------------------------------------------------------------------------------------

This is Achieved in 2 steps without using any 3rd variable

         1) Clear Low 8 bits of Y (set Low 8 bits to "00000000"

         2)Now do unary or(|) with X

            unsigned int x = 0x00a5;
            unsigned int y = 0xabcde;
            y = y &(1111111100000000);
             y = (y | x);

     

5) invert x :-

------------------------

             C Code

                         x = ~x;

6) shift left x four bits and shift right y two bits :-

------------------------------------------------------------------------

x = x <<4;

y = y >>2;

7) check if bit 4 of x is 0.

8) check if bit 10 of y is 1.

------------------------------------------------

                 int pos = 3 // Postion at which we have to check

                  int value = 10; //Value on which we have to check

                 if( (value &(1<<pos) ) == 1)

                  {

                             print("bit at pos 3 is 1");

                   }

          check if bit 4 of x is 0

                if( (x & (1 <<4)) == 0)