左移几位就除以2的几次方右移几位就乘以2的几次方
如:36>>2=9
36<<2=144
有AD功能的单片机如12c5a60s2在输出AD转换结果时就用到这个知识点。
当ADRJ=0时,转换结果的高8位存储在ADC_RES中,低2位存储在ADC_RESL中,要输出10位转换后的数据用这条语句:
result=ADC_RES*4+ADC_RESL;
当然,这是10位的二进制数,还得换算回去:realresult=result*vcc/1024;
用byte类型就装不下啦,如果不想要太高的精度可以舍掉低2位,毕竟低2位只影响到小数点后2位的精度。这时就要这样写:
result=ADC_RES*4,换算公式如上。
当ADRJ=1时
转换结果的高2位存储在ADC_RES中,低8位存储在ADC_RESL中,看懂上面的知识,这里就会了,不多说. |