1.什么式波兰表达式
波兰表达式(又称逆波兰表达式 )是一种数学和逻辑表达式的表示方法。在波兰表达式中,操作符放在它们所操作的数之前,而不是在它们之间,这样可以消除括号的需求。波兰表达式通过一种前缀或后缀的方式来表示,分别称为前缀波兰表达式和后缀波兰表达式。
2.为什么会有这种表达式
在计算机中,要本着能简化就简化的原则来设计,对于一个正常的数学运算表达式,除了有加减乘除之外,还有一些括号来标识运算的优先级,那么对于计算机而言,能不能不写括号就能正常运算这个表达式呢,那么波兰表达式就产生了。
3.直接上🌰
下面的表达式就是一个比较简单的例子,我们也叫它中缀表达式
a + b * (c - d) + e/f
有了中缀表达式 ,那肯定也有前缀表达式 和后缀表达式
中缀表达式转换
首先根据中缀表达式构造一个二叉树
+ +
/ \ / \
a + ...
前言
首先为什么要写这篇文章呢,因为我遇到了一个小问题,前几天在我的博客引入了评论的功能(Waline ),然后呢,就看了一下官方的配置文档, 里面有一些自定义的配置,需要在引入Waline 进行配置,然后发现我当前使用的Hexo主题并没有开放这些配置,也就是说我没办法修改Waline 的这些配置,然后就开始慢慢摸索,找到主题对于Waline 的配置的源代码, 然后呢,就出现了一个问题,因为是源码文件,都在node_modules文件夹下,所以修改只能在当前电脑生效,换个电脑是不会同步的…… 然后就有了这篇文章。
然后开始疯狂的搜索资料,终于找到了一个比较完美的解决方案
下面开始教程
这个教程的思路就是在打包之前执行一段代码,这段代码的作用就是自动替换node_modules对应的文件内容
首先在你的项目根目录创建两个文件夹change_modules 、script ,根据名字就能猜到第一个是存放你要替换的源码,第二个就是执行替换的脚本,
在script 目录新建一个文件change_modules.js ,内容如下:
123456789101112131415161718 ...
1. 为什么要有校验码?
因为在数据存取和传送的过程中,由于元器件或者噪音的干扰等原因会出现错误,这个时候我们就需要采取相应的措施,发现并纠正错误,对于错误的检测和校正,大多采取“冗余校验”的思想,即除原数据外,额外增加若干位编码,这些新增的代码称为校验位。
2. 奇偶校验
是一种常用的错误检测方法,用于校验代码传输的正确性。它根据被传输的一组二进制代码的数位中“1”的个数是奇数还是偶数来进行校验。如果采用奇数的方式,则称为奇校验;反之,则称为偶校验。
校验位的计算
奇校验 :如果数据单元中1的数量已经是奇数,则校验位设置为0;否则,校验位设置为1。
偶校验 :如果数据单元中1的数量已经是偶数,则校验位设置为0;否则,校验位设置为1。
举个栗子🌰
一个七位数的数据单元1011011
奇校验编码:01011011
偶校验编码:11011011
红色是校验位,可以在数据的前面也可以在数据的后面
总结
奇偶校验是一种简单且易于实现的错误检测技术。虽然它不能解决所有的错误情况,但其低成本和实用性使它成为许多通信和存储系统的首选错误检测方法。随着技术的发展, ...
原码:正数是其二进制本身;负数是符号位为1,数值部分取X绝对值的二进制。
反码:正数的反码和原码相同;负数是符号位为1,其它位是原码取反。
补码:正数的补码和原码,反码相同;负数是符号位为1,其它位是原码取反,未位加1。(或者说负数的补码是其绝对值反码未位加1)
移码:将符号位取反的补码(不区分正负)
正数的原码、反码、补码相同
举个栗子以一个字节8位说明:
编码(十进制)
22
-22
原码
010110
110110
反码
010110
101001
补码
010110
101010
移码
110110
001010
注:红色为符号位
1. 根据补码求原码
已知一个数的补码,求原码的操作分两种情况:
如果补码的符号位为“0”,表示是一个正数,所以补码就是该数的原码。
如果补码的符号位为“1”,表示是一个负数,求原码的操作可以是:符号位为1;其余各位取反,然后再加1。
2. 补码加、减运算公式
在做补码加减法时,只需将符号位和数值部分一起参与运算,并且将符号位产生的进位丢掉即可
补码加法公式
1[X+Y]补 = [X]补 + [Y]补
...
技术教程
未读
在项目的目录打开一个控制台窗口,执行如下命令初始化Git
1git init
在项目目录新建一个 .gitignore 文件,如果有直接打开,添加以下代码
12345678.DS_StoreThumbs.dbdb.json*.lognode_modules/public/.deploy*/_multiconfig.yml
执行完之后到 GitHub 或者 Gitee 创建一个仓库,然后在刚才的控制台继续执行
123git add .# 你刚才创建的仓库地址git remote add origin https://github.com/xxxxxxxxxxxxxxx.git
然后在你的项目创建一个 scripts 目录,在里面创建一个文件 auto_backup.js ,将一下代码添加到文件中
1234567891011121314151617181920212223242526272829303132333435363738require('shelljs/global');const path = require('path' ...
有趣的知识
未读复制如下代码
123<a href="weixin://findfriend/verifycontact/wxid">改备注</a>
发送到你的微信传输助手,你会看到如下信息
点击蓝色的字体会跳转到一个添加好友的页面,这个时候吧备注修改成你想要的名字,点击发送发送,然后恭喜你得到了不一样的微信传输助手
最后温馨提示:如果你用的是国内版的微信,那么你只有一次修改的机会,第二次修改不会生效,如果是 google 版的就可以修改多次