善用身邊的工具
深入分析 Oracle 內部原理的時候不得不經常進行二進制、八進制、十進制、十六進制之間的轉換,簡單的還好弄,但是長的十六進制或者比較大的十進制數就歇菜了,怎么辦呢?Windows 下有個科學計算器(開始->運行->calc 可快速調出來) 但是總覺得不太理想,不是功能的問題,而是“批處理”的問題。我并不想為了這個問題而動用C#寫一個功能強大且符合心意的程序,要知道從頭再寫一次類型轉換程序要處理數據溢出、各種異常,到頭來還不一定比 calc 優秀和穩定。于是乎我將目轉向了 perl,借助幾個函數的確很快完成了任務(不足50行代碼),但還是要面對數據溢出等等各種問題。
借助 google 尋找一下解決方案,發現 Linux 的 shell 就可以很好地完成這個任務,而且非常簡單:
echo 'ibase=16;obase=2;ABCDE123456789' | bc # output : # 10101011110011011110000100100011010001010110011110001001
只要簡單設定一下 ibase(輸入是幾進制)和 obase(輸出是幾進制,十進制的時候要省略不寫),注意一下輸入的ABCDEF要大寫,剩下的就交給 bc ,也就是Linux 下的科學計算器就可以了,出了問題也容易調試。
再看看如何做批處理:
echo " ibase=16;obase=2; A C E " | bc # output : # 1010 # 1100 # 1110
非常簡單而且直接。
以上是在工作中遇到的,拿出來作為例子,很多時候我們無需重新構造輪子,多少前輩為我們做好了輪子,我們只管去用就可以了,這也是我越來越喜歡使用Linux的原因,準確來說是 Linux 的 shell,而不是 Gnome 和 KDE,很多比較頭痛的問題借助幾個命令和管道符就可以完成了。
我裝 Linux 喜歡完全安裝,現在是沒有必要了,CentOS 4.7 也就是 RHEL 4.7 的社區版可以選擇完全安裝,但是到了版本5就麻煩了,帶上一堆虛擬化、集群什么的,而且是沒有一個按鈕、選項可以選擇“全部安裝”,即使是這樣,裝 Linux 我會盡量多安裝,管理包、開發工具、類庫這些都回完全安裝,其他圖形和聲音就不管了。
浙公網安備 33010602011771號