如i=0時(shí),tab[i]的值為0x3f,那么這句bit_dat((bit)(tab[i]&0x80));的作用是:
第一步:tab[i]與0x80作位與,即0x3f與0x80作位與(與0x40相位與就是取了第6位),這樣的效果是取得了0x3f的最高位(第7位),其它位全部被屏蔽為0
第二步:作int向bit強(qiáng)制轉(zhuǎn)換,向bit轉(zhuǎn)換有一個(gè)規(guī)則,只要待轉(zhuǎn)換前變量是非零,轉(zhuǎn)換后的bit類型變量即為1,否則為0,這里,0x3f&0x80的結(jié)果為0,也就是((bit)(tab[i]&0x80))的結(jié)果為0
第三步:調(diào)用bit_dat函數(shù),向外設(shè)寫入這一位。
后面的(bit_dat((bit)(tab[i]&0x40))句子就是取次高位,后面的依此類推,就可以從高位取到低位了。