标题: 新人求解单片机程序 [打印本页]

作者: 浊酒尽余欢    时间: 2018-6-24 15:40
标题: 新人求解单片机程序
time_buf[0]>>4
time_buf[0]&0x0f
这2个程序是什么意思?      


作者: 1021697013    时间: 2018-6-24 17:00
假设time_buf[0]=0x80;    time_buf[0]>>4;   time_buf[0]右移4位;   time_buf[0]=0x08;
time_buf[0]&0x0f结果为0x08;
这两条语句的意思是获得time_buf[0]的高四位的值   
作者: angmall    时间: 2018-6-24 17:07
将取 time_buf[0]的低四位, 然后让time_buf[0]的高四位换为0
作者: timelessxp    时间: 2018-6-24 18:21
第一个是将time_buf[0]的值除以16,第二个是将time_buf[0]的值与00001111相与,作用可能是清除高四位。
作者: rainl1    时间: 2018-6-24 19:23
一个是移位,一个是置数
作者: sadd    时间: 2018-6-24 20:49
只去time_bu[0]的高四位
作者: wbx123    时间: 2018-6-24 20:56
获取高4位的值
作者: jianwei_zou    时间: 2018-6-24 22:13
假设time_buf[0]=0x80;    time_buf[0]>>4;   time_buf[0]右移4位;   time_buf[0]=0x08;
time_buf[0]&0x0f结果为0x08;
这两条语句的意思是获得time_buf[0]的高四位的值
作者: chenxiao0130    时间: 2018-6-25 10:33
取time_buf[0]高四位的值;
作者: 用户123456    时间: 2018-6-25 11:06
移数和置位
作者: zhb2004xp    时间: 2018-6-25 11:44
把数值在草稿上写出二进制进行运算更好理解一些,楼主问这两个语句应该是单独的两个运算赋值语句:
1、time_buf[0]>>4;把time_buf[0]的值(二进制更容易理解)右移4位(这里应该是赋值给其他变量),也就是取time_buf[0]的高四位的值;
2、time_buf[0]&0x0f;将time_buf[0]的值同0x0f位与位进行“与”运算,也就是取time_buf[0]的低四位的值;
注意:time_buf[0]的值在这里不变,
作者: 爱学单片机    时间: 2018-6-25 17:02
移位 置数
作者: 啊啊路    时间: 2018-6-25 19:18
第一个是将time_buf[0]的值除以16,第二个是将time_buf[0]的值与00001111相与,作用可能是清除高四位的值。
作者: qwerzxcvqwer    时间: 2018-6-25 22:24
把高四位移至低四位,并高四位清零




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1