如何在LaTeX中实现无间隔竖线的十进制转二进制换算格式排版
你现有的写法用\newline分别拆分左右两侧的数值,无法保证左右行的位置严格对齐,也做不到竖线完全连贯,换用array环境就可以很简单实现需求:
方案1:手动输入数值的静态写法
\documentclass{article} \begin{document} % 取消数组的默认额外行间距 \renewcommand{\arraystretch}{0} $\begin{array}{r|r} 64 & 0 \\ 32 & 0 \\ 16 & 0 \\ 8 & 1 \\ 4 & 0 \\ 2 & 0 \\ 1 & 1 \\ \end{array}$ \end{document}
列格式r|r代表左右两列均右对齐,中间的竖线会自动贯穿所有行,完全符合竖线连续、无额外垂直间距的要求,你只需要按实际需要修改每行的数值即可。
方案2:自动生成换算表的动态写法
如果不想手动逐行输入除2取余的结果,可以借助pgf宏包实现自动计算:
\documentclass{article} \usepackage{pgfmath,ifthen} \begin{document} \renewcommand{\arraystretch}{0} \newcounter{decnum} \setcounter{decnum}{56} % 此处修改为你要转换的十进制数 $\begin{array}{r|r} \whiledo{\value{decnum}>0}{ \thedecnum & \pgfmathparse{int(mod(\thedecnum,2))}\pgfmathresult \\ \pgfmathparse{int(floor(\thedecnum/2))} \setcounter{decnum}{\pgfmathresult} } 0 & \\ % 补全最后一行的0 \end{array}$ \end{document}
只需要修改\setcounter{decnum}{56}里的数值,就能自动生成完整的十进制转二进制换算表。
内容的提问来源于stack exchange,提问作者Shark44
相关产品推荐
相关产品推荐

