讀小魚(王工)四點(diǎn)碰數(shù)程序讀后感
昨晚,讀到若楓論壇上一篇關(guān)于自動(dòng)分中的宏程序,,看了半天,,沒看明白,想放棄,,但看到作者宏程序格式書寫規(guī)范,,注釋寫的完善,感覺作者絕非庸手,,就制成pdf保存下來,。
今天,閑來無事打開分析,,漸漸看出來門道來,。
一般來說,常用的分中建坐標(biāo)系不外乎作者羅列的三類九種:第一類四邊分中(XY雙邊分中,,碰四次),;第二類是一對(duì)邊分中再加另一邊(X邊分中加一Y邊和Y邊分中加一X邊,碰三下),;第三類一角(打XY單邊,,碰兩次)如表示:
/ Y3 Y4 H2 H2 t& I
如果選四邊,需要碰四點(diǎn),,如果選一角需要碰兩點(diǎn),,你不能多碰也不能少碰,另外還必須將探頭自動(dòng)移到你需要碰數(shù)的地方,,否則就不叫自動(dòng)碰數(shù)了,,你該怎么實(shí)現(xiàn)呢?
作者用了我們(至少是我)很少用的功能AND(與運(yùn)算),,看了作者的程序后,,我急忙翻起課本,,復(fù)習(xí)了AND的知識(shí)點(diǎn)(1+1=1;1+0=0,;0+0=0相當(dāng)于串聯(lián)開關(guān),進(jìn)行與運(yùn)算時(shí),,先轉(zhuǎn)化為相應(yīng)的二進(jìn)制數(shù),,然后從低位往高位逐個(gè)按上述規(guī)則進(jìn)行運(yùn)算;轉(zhuǎn)化為二進(jìn)制,,位數(shù)不同時(shí)低位者向高位加0,,如10010和1011進(jìn)行與運(yùn)算先把1011補(bǔ)位變成01011然后一位一位進(jìn)行運(yùn)算)后才恍然大悟:作者巧思構(gòu)想,用1,2,4,8和對(duì)應(yīng)的數(shù)進(jìn)行與運(yùn)算,。我們只要把這四個(gè)數(shù)轉(zhuǎn)換為二進(jìn)制就可以理解作者的獨(dú)具匠心了:1----1,;2----10,;4----100;8----1000,;也就是說根據(jù)上述AND的用法,,我們?nèi)芜x一個(gè)數(shù)如10,它的二進(jìn)制是1010,,。讓它和8進(jìn)行與運(yùn)算10 AND 8 ,,它的結(jié)果是多少呢?
不知諸位發(fā)現(xiàn)了沒有,,任何數(shù)和8進(jìn)行AND運(yùn)算,,都只需考慮第四位即可,結(jié)果要么是1000(十進(jìn)制8),,要么是0,。 1,2,4也同樣。如果理解了這一點(diǎn),,整個(gè)程序就可以迎刃而解了,。比如選上表中的第三類一角(X-,Y-)模式,,按作者X-(1判別),,Y-(2判別),Y+(4判別),,Y-(8判別)碰就可以得到這樣一個(gè)結(jié)果1,1,0 ,0(其中1代表需要碰,;0代表不需要碰),按二進(jìn)制從高位往低位排列就是0011,對(duì)應(yīng)十進(jìn)制就是3,,其他依次類推就知道作者#14取那些數(shù)的良苦用心了,。
附表:
偉哉!作者,,我本來以為自己在宏程序上小有所成,,現(xiàn)在看來是多么淺陋無知。得知這只是碰數(shù)程序中的一部分而已(還有五點(diǎn)碰數(shù))我頓時(shí)佩服的五體投地,。后來聽說有個(gè)培訓(xùn)班是他在講宏程序我就毅然報(bào)名參加了,。作者給我們打開了一扇窗,讓我們觸摸到了宏的強(qiáng)大,。愿作者將自己的心血多傳授大家,,以讓全國(guó)各地的機(jī)床更加智能起來!
(附:作者是小魚老師,,小魚老師的程序博大精深,,有歪解小魚老師原意的,希望請(qǐng)小魚老師原諒,。程序源代碼
http://www.postp.net/viewthread.php?tid=2487&extra=page%3D1)
星期八
10月8日凌晨2點(diǎn)