https://www.gravatar.com/avatar/f2d43c70144b03f84c7ad670d46d97cb?s=240&d=mp

为什么计算机需要补码?

三者的具体实例 关于这三者的定义就不讨论了, 给出 wiki链接 为了便于讨论, 先用4位二进制数表示一个整数, 接下来讨论下各种表示方法的此数的范围 注: 以下0000之类的二进制数都是未经变化的原码形式 exp: 原码无符号数1000表示8, 其原码有符号数1000表示-0, 其反码有符号数1111表示-7, 其补码有符号数00001表示-8. 希望读者自行动手将下面几种情况转化为相应的反码或补码, 然后对应十进制的范围, 以便更好的理解, 无符号数的原码: i. 从0000到1111依次表示十进制的0到15. 有符号数的原码: i. 从0000到0111依次表示十进制的0到7. ii. 从1000到1111依次表示十进制的-0到-7. 有符号数的反码表示: i. 从0000到0111依次表示十进制的0到7. ii. 从1000到1111依次表示十进制的-7到-0. 有符号数的补码表示: i. 从0000到0111依次表示十进制的0到7. ii. 从1000到1111依次表示十进制的-8到-1. 分析反码和补码的意义 我们从原码的有符号数表示法出发, 可以看到, 存在以下两个缺陷 a. 正负相加并不等于$0$(根据二进制逢二进一): $0001+1001 = 1010$, 按照十进制就是$1 + (-1) = -2 \neq 0$. 明显存在问题 b. 有着0 和-0两个零存在. 也是不合理的 i. 首先来解决缺陷a: 如果对1001除符号位的各位取反, 即1110. 有$ 0001 + 1110 = 1111$, 即-0. (对-0困惑的话可以看上面的第三种情况). 虽然解决了二进制相加不为零的情况, 但是-0的情况依旧没有解决.

mathjax的初次尝试

缘起 昨天花了1个多小时学习了Markdown这个轻量级编辑语言Markdown 语法说明(简体中文版)的语法后,动了将数学笔记也用wiz的内置markdown编辑器来电子化的念想,毕竟我是个非常崇尚脱离纸质环境的人,谁叫我是环境工程专业的呢😞。于是又日常地碰到了一大堆需要谷歌来解决的问题, 烦在其中,乐在其中。 工具介绍 $mathjax$ $Editor.md插件$ $latex$ 过程 遇到的第一个问题是 $\Delta$这个符号如何打出,没想到它也恰恰是所有问题中最后解决的。 第一反应自然是Google一下,结果出来的教程都是 \Delta这个操作 尝试百遍后都无一例外的失败了,然后开始了折腾之旅 可能是wiz自带的markdown对Latex支持不完善,于是调用了Org2Wiz这个插件(此插件需要mathjax和emacs的支持),又反复使用编辑了org,mdp等格式,依然无解, 接下来开始怀疑是电脑中罗马字符的数字字库,于是谷歌一番,发现的确有提及 下面的表格中将给出在数学模式中常用的所有符号。使用表 3.12–3.167 所列出的符号,必须事先安装 AMS 数学字库并且在文档的导言区加载宏 包: amssymb。如果你的系统中没有安装 AMS 宏包和数学字库,可去下述 地址下载: CTAN:/tex-archive/macros/latex/required/amslatex 之后的安装过程中涉及到了 $MiKTeX$,因为安装宏包必须用它。 然而配置好了一切后,依然无法给我一个 $\Delta$,看着预览中的\Delta,百撕不得骑姐。 无奈之下只好重新开始通读Latex的教程一份其实很短的 LaTeX 入门文档 | 始终,发现了解决的方法 LaTeX 的数学模式有两种:行内模式(inline)和行间模式(display)。前者在正文的行文中,插入数学公式;后者独立排列单独成行。 在行文中,使用$ ... $可以插入行内公式,使用\[ ... \]可以插入行间公式,如果需要对行间公式进行编号,可以使用equation环境: 可见,单独的\delta并不能直接实现$\delta$这个罗马字符的print,必须在两端都加上$才行。 总结 虽然看起来除了最后一步,之前的一切都是白折腾了,大一的我可能认为就是这样的,毕竟对解决这一问题来说,这些就是无用功,但是谁知道以后的路上会不会就遇到了这些细枝末节的details呢?我坚信,一定会的。