接下來,一方面要趕緊測試提速的晶元和繼續typeb的coding,另一方面,比如晚上我就想寫寫基本的介面,從rs-232開始吧。
今天下午寫了個新的指令碼函式,就是之前的生成序列的函式的拓展,新增了進製,和位寬的支援,比如現在已經支援hex/dec/oct/bin 這4種進製數的輸入,接著新增了位寬,比如你想隨便初始化乙個1kx32的rom,寫了乙個*.rom檔案,位寬就要限定為8(hex),所以這個功能也是很好用的。下面附上**
function! array_gen(begin_num, end_num, step_num, radix_num, width_num)let l1=a:begin_num
while l1hex
if(a:width_num==2)
let l2=printf("%02x", l1)
elseif(a:width_num==4)
let l2=printf("%04x", l1)
elseif(a:width_num==8)
let l2=printf("%08x", l1)
else
let l2=printf("%x", l1)
endif
elseif(a:radix_num==10) " 10-radix-->dec
if(a:width_num==2)
let l2=printf("%02d", l1)
elseif(a:width_num==4)
let l2=printf("%04d", l1)
elseif(a:width_num==8)
let l2=printf("%08d", l1)
else
let l2=printf("%d", l1)
endif
elseif(a:radix_num==8) " 8-radix-->oct
if(a:width_num==2)
let l2=printf("%02o", l1)
elseif(a:width_num==4)
let l2=printf("%04o", l1)
elseif(a:width_num==8)
let l2=printf("%08o", l1)
else
let l2=printf("%o", l1)
endif
elseif(a:radix_num==2) " 2-radix-->bin
let nr = l1
let l2 = ''
while nr >= 1
let remainder = nr%2
let quotient = nr/2
let nr = quotient
let l2 = printf("%d", remainder) . l2
endwhile
if(a:width_num==4)
let l2=printf("%04d", l2)
elseif(a:width_num==8)
let l2=printf("%08d", l2)
elseif(a:width_num==12)
let l2=printf("%012d", l2)
elseif(a:width_num==16)
let l2=printf("%016d", l2)
else
let l2=printf("%d", l2)
endif
endif
exec "norm o" . l2 . "\"
let l1=l1+a:step_num
endw
endfunction
我發現printf活用起來還真是個厲害的函式,本來我打算用引用外部程式轉化的方法,但是發現比如你在vim裡面的變數l1,沒法傳給外面的函式來給你進行進製轉化,學到了乙個bc的命令。比如$ echo 'obase=16;100' | bc這個東西就能把100轉化成hex的數值,再有比如你在shell程式設計的時候「」裡面是支援變數呼叫的(『』不支援)。所以可以有這樣的命令,$ set di=2; echo "obase=$di;100" | bc就能把100轉化成bin,不多說,system來取得外部程式的返回值的話,沒法把l1這個迴圈變數交過去,本來還想問問別人的,但是後來想想,這種東西應該就是函式介面的問題,已經不是我能關注到的了,所以就放棄了,不知道最終能不能實現
C接下來的TinyHttpD
起因 在看計算機網路時,剛好在leetcode買了一本 網路是怎樣連線的 越發覺得要看協議的應用 server的實現。過程 試過python的socket模組還有flask與django,由於語言太過於抽象 高階,不接近底層實現 而造成無法細緻理解,故在code sheep推薦下來讀tinyhttp...
接下來的KindEditor開發計畫
接下來編輯器要分開發展,乙個方向是繼續完善3.x系列,另乙個方向是新一代的編輯器4.0。3.x的發展優先度高於4.0,4.0目前處於構思階段,重新設計底層框架。b 3.x系列要實現的功能 b 1.細節功能的持續完善 2.修正 3.undo redo改善 4.檔案上傳和管理 file manager外...
接下來幾天的訓練計畫
前幾天做一些模擬賽時,被一些基礎題卡了,反思一下,是自己基礎題不過關,想要在acm路上走的越來越遠,必須打好基礎。做了兩節後,發現usaco上的題正好練基礎,在去艾教那裡培訓之前還有半個月的時間,夠打好基礎了。7.15 模擬練 12 30 5 30 晚上爭取可以補兩道題 7.16 cccc比賽 一天...