Compiler Version: Keil C51 5.0
I experienced some unexpected behaviour with the Keil C51
compiler. I have recreated the issue in the below code snippets.
Case 1: Result of bit shift operator is type casted from uchar
(8b) to ulong (32b) correctly
unsigned long tempadcVal;
unsigned char data_save_high = 0xA4;
unsigned char data_save_low = 0x3F;
//The expected 32b value without any information loss
//Is loaded into tempadcVal
tempadcVal = (data_save_high<&a
↧