在实际工作中,我需要取得一个整数二进制表示的最后一个「1」在哪里。
最朴素的办法,是用短除法,逐次取余数。高明一点的办法,可以是将目标整数向右逐次右移 1 位,然后与常数 1
按位取与,结合计数器判断「1」的位置。
这里,我们介绍一个更加「聪明」的办法。
在实际工作中,我需要取得一个整数二进制表示的最后一个「1」在哪里。
最朴素的办法,是用短除法,逐次取余数。高明一点的办法,可以是将目标整数向右逐次右移 1 位,然后与常数 1
按位取与,结合计数器判断「1」的位置。
这里,我们介绍一个更加「聪明」的办法。
许多期刊在投稿的时候要求作者将图表等大块内容与正文分开、放在文章末尾。通常来说,我们只能将本来放在正文中的插图、插表代码挪到文章末尾;然后再用交叉引用,说明图表的作用。
这样固然可以实现需要的效果,但是改变了行文的习惯,也不符合 LaTeX「内容与格式分离」的哲学。
McCauley 等人的 endfloat 宏包改变了 LaTeX 处理浮动体的流程,能够比较简单地将图表这些浮动体延迟到文章末尾输出——只需要简单的配置,不需要改变行文习惯。
工作中需要用到 SecureCRT,但是 SecureCRT 默认的配色方案实在是丑得不能用,写代码看久了还伤眼。「刚需」驱动下,自己仿照 Solarized 方案做了一个配色,顺眼多了。
MathJax 是一个 JavaScript 引擎,能够将 LaTeX 语法书写的公式在网页上显示出来,而且效果杠杠的。Markdown 是一种轻量级的标记语言。用 Markdown 书写的文章,可以用 Markdown 解释器处理成标准的 HTML 文档。因此 Markdown 很适合用来写网络日志。
作为数学系毕业的学生,写博客时不可避免地会涉及到一些数学公式。可惜不巧,用 Markdown 写博客的我,在使用 MathJax 的时候遇到了一点麻烦。
在 Markdown 中,下划线 _
被保留,用作标记符号。比如 _Slant_
会生成倾斜的 _Slant_。在 LaTeX 中,下划线 _
被用作下标记号。比如 x_i
会生成 $x_i$
。
由于 Markdown 在 MathJax 之前起作用,有时下标记号会被 Markdown 吃掉,变成 HTML 标记 <i>
而失去 LaTeX 的下标效果,造成数学公式显示不正常。比如 This is an example: $f_i = f_{i + 1}$
里的两个下划线会被 Markdown 理解成倾斜的标记,这就不对了。