second print statement goes wrong
I am looking help to perform following operation
Data_Byte = 0000 0000 | 0000 0001 = 0000 0001 << 1 = 000 00010 = 2
Data_Byte = 000 00010 | 0000 0001 = 0000 0011 << 1 = 000 00110 = 6
User can modify LSB bit
My last print statement should print value 6 as expected. I don't understand why I don't get 6. What I need to print 6 ?
Code:
#include<stdio.h>
#include<stdint.h>
int main ()
{
uint8_t Data_Byte = 0;
uint8_t LSB_BIT;
printf("Set/Reset LSB Enter 1 /0 : ");
scanf("%d", &LSB_BIT );
Data_Byte = ( Data_Byte | LSB_BIT );
printf(" %d\n", Data_Byte );
Data_Byte = Data_Byte << 1;
printf("Byte = %d \n", Data_Byte );
printf("Set/Reset LSB Enter 1 /0 : ");
scanf("%d", &LSB_BIT );
Data_Byte = ( Data_Byte | LSB_BIT );
printf("%d\n", Data_Byte );
Data_Byte = Data_Byte << 1;
printf("Byte = %d \n", Data_Byte );
return 0;
}
Set/Reset LSB Enter 1 /0 : 1
1
Byte = 2
Set/Reset LSB Enter 1 /0 : 1
1
Byte = 2