欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 51單片機中如何將一個數據的高4位和低四位求出來 [打印本頁]

作者: pangju    時間: 2017-12-31 14:25
標題: 51單片機中如何將一個數據的高4位和低四位求出來
51單片機中如何將一個數據的高4位和低四位求出來
作者: wulin    時間: 2017-12-31 16:17


作者: performfh    時間: 2017-12-31 17:13
unsigned char g_date = 0xfb;
unsigned char g_ldate = 0;
unsigned char g_hdate = 0;
g_ldate = g_date & 0x0f;
g_hdate = (g_date & 0xf0) >> 4;
作者: abc779065    時間: 2017-12-31 18:58
可以通過分別或運算
作者: HC6800-ES-V2.0    時間: 2017-12-31 19:36
如果你懂得二進制、十六進制數的組成原理,就沒什么問題了。
就以你說的“高四位、低四位”共8位的數為例子,加以說明吧。
第一:二進制(笨辦法)
11111111=1*2^7+1*2^6+1*2^5+1*2^4+1*2^3+1*2^2+1*2^1+1*2^0=128+64+32+16+8+4+2+1
=255
設你取得的8位數據為x,則:
x/128=第7位是0或是1
(x%128)/64=第6位的0或1
(x%64)/32=第5位的0或1
(x%32)/16=第4位的0或1
......
所有位都找出來了。
(肯定有人噴我了,我說的是原理,不是真正程序的操作方法)
第二:十六進制(通常辦法)
x=11111111=FF=15*16^1+15*16^0=240+15=255
(x/16)=第2位0~15的一個值
(x%16)=第1位0~15的一個值
這就是你要的高四位和低四位的值。在實際應用中,如用數碼管顯示紅外遙控的十六進制鍵碼,就是這樣做的。
還需要不需要我講把x轉換為十進制數呢?算了,一下都講了吧
第三:十進制
(x/100)=百位數
(x%100)/10=十位數
(x%10)/1=個位數。


作者: 單片機王者    時間: 2017-12-31 19:51
使用移位>>或<<,全變成低四位,然后進行位與運算
作者: yzwzfyz    時間: 2017-12-31 22:21
將數據與0FH相與就得到低四位。
將數據進行SWAP,再做上述動作,就得到高四位。
作者: lixiaofei789    時間: 2018-1-1 14:27
uchar date = 0xaa;
uchar dat_high = 0;
uchar dat_low = 0;
dat_high =date & 0x0f;
dat_low = (date & 0xf0) >> 4;




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1