zoukankan      html  css  js  c++  java
  • 善用身边的工具

          深入分析 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 我会尽量多安装,管理包、开发工具、类库这些都回完全安装,其他图形和声音就不管了。

  • 相关阅读:
    PBOC中文件结构,文件类型解析
    AID-应用标识符的组成规则
    关于Jquery Ajax的用法
    使用tiled-0.16.1创建地图用于cocos2dx
    UIWebView加载各种类型的数据
    提交苹果审核App被拒原因
    swift_学习中遇到的错误
    iOS_自定义返回按钮
    UITextView控件_文字内容居左居上
    iOS开发----Xcode7升级之后插件无法使用与不小心点击Skipbundle的解决办法
  • 原文地址:https://www.cnblogs.com/killkill/p/1824199.html
Copyright © 2011-2022 走看看