楼主的这个问题确实值得想一下,但以上各位都没有给出今人满意的解释。
首先,你说要点亮第一个(第0个)灯,于是把第一个(第0个)灯置一,写成1000 0000
好了,问题开始了,我也认为你的这种想法并没有什么错,我想如果可以这样编程的话:P0=1000 0000; 那么你就对了,从左往右一一对应,这是自然而然的想法,也是很人性化的,符合常规思维的,就像我们写字一样,从左往右写,可是在程序里要用到十六进制,这就意味着要有确定的规则来把二进制转成十六进制,那么这个1000 0000转成十六进制后是多少呢?呵呵,这个楼主你自己也会算,正是0x80,为什么是0x80呢?因为是把最右做为低位的,从右往左乘2的位次幂累加!可是按你的想法,就得从左往右乘2的位次幂累加了!就是0x10了!如果数制转换规则由你这样规定,那么你的程序就是对的了!
什么是最低位呢,就是P0.0!按标准十六进制就得从右往左写二进制数!你说1000 0000是0x80就说明你接受了标准的二进制转十六进制,而且你是从低位到高位写的,所以就得从右往左写! |