|
最高位就是最左邊的一位,比如8位的二進制數(shù)1100 1010最高位為1 然后依次往右數(shù),一般習(xí)慣稱最右邊的一位為第0位(2的0次方),或者最低位,所以對于8位二進制數(shù),最高位就記作第7位.需要注意,比如8位二進制數(shù) 11 0010的最高位為0而不是1.
因為 11 0010 = 0011 0010.
為什么是最高位,這個是595的規(guī)定(也有其他的器件規(guī)定為先最低位的),就跟中國的車方向盤在左邊,英國的車方向盤在右邊一個道理.
SER=dat>>7;就是把dat這個8位二進制數(shù)右移7位后,賦值給SER,即將dat的最高位賦值給SER.注意是dat>>7,沒有賦值操作,所以執(zhí)行后,dat的值沒有改變,原來是什么,現(xiàn)在還是什么.
dat<<=1;就是把dat原來的值左移一位,再賦值給dat,(這次有賦值操作,所以會改變原先的值)多出來的最低位自動用0來填充,比如dat原來為 1101 0111,執(zhí)行了dat<<=1;后 dat為 1010 1110,其實就是將原數(shù)據(jù)的第6位(從左邊數(shù)第2位),移到第7位.等下次執(zhí)行 SER=dat>>7;時,將之賦下一次的DAT,依此類推,直到執(zhí)行完循環(huán). |
|