I am facing a problem in using the right shift operator in C with keil. The instruction is:for(i=0;i<=8;i++) { j=sum>>i; } where sum= 32 bit no. the instruction is not executed if the syntax is as shown above. but if i write a numerical value instead of using the variable name 'sum' then the instruction is easily executed. i need to use the variable name only. how do i fix this problem?
look at the code. loop 1 shifts sum 0 bits. loop 2 shifts sum 1 bit. loop 3 shifts sum 2 more bits. and so on. The constant is restored each time. you most likly want sum >> 1
can you please elaborate further. what i want to do is bring the msb 8 bits of the 16 bit value in the variable sum to the lsb position. so i have to shift right 8 times and so the loop is used
sum>>=8
View all questions in Keil forum