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

  • 相关阅读:
    (转)Android Studio解决unspecified on project app resolves to an APK archive which is not supported
    OpenGL 学习总结
    关于tap设备
    写把proto函数搞清楚
    qemu中是怎么模拟的新的设备
    kvm搭建完成了,那么问题来了,到底是什么原理
    kvm竟然抓不到kvm的tracepoint
    安装KVM
    试着理解下kvm
    网络namespace
  • 原文地址:https://www.cnblogs.com/killkill/p/1824199.html
Copyright © 2011-2022 走看看