拾谈"用最有效率的方法算出2乘以8等於几?"

这是网上流传的"变态级JAVA程序员面试32问"的其中一题(二十八题),然后下面给出来的答案是

第二十八,编程题: 用最有效率的方法算出2乘以8等於几?
有C背景的程序员特别喜欢问这种问题。

2 << 3

粗看似乎很在理,大致想来2<<3会是移位操作,在Java的字节码中移位指令是ishl(右移),而在CPU上的硬件指令可能就会是shl(算术右移指令)。其实不然,如果熟悉汇编语言,还考虑过编译优化,2<<3根本不会使用移位操作,而是在编译时就优化计算出16来了。

但如果是写成这样的方式(int i = 2; int j = i<<2;),又是不一样的,大家可以从代码不同写法生成的Java操作指令或汇编指令看出个端倪。 阅读全文 >>

VC6.0编译时出现"Error spawning cl.exe"及解决方法

我安装了VC 6.0后,写一段简单的"Hello World"程序,点击 Build 按钮,信息栏里只出现"Compiling...,Error spawning cl.exe"错误提示。原来那么久可没碰到过这种错误,一下子有点蒙了,没法,很容易就有产生重新安装VC来解决。

重新安装的话太麻烦,还是先到网上找找有没有相应的解决方案,把出错提示放网上google一下,就查到http://www.mscenter.edu.cn/blog/k_eckel/articles/3016.html 的一篇文章提供了方法。 阅读全文 >>