二维码是什么原理?不知道从什么时候开始,我们的生活突然之间就充满了二维码,看网页要扫二维码,加好友要扫二维码,现在连楼下卖草莓的大爷都支持扫码支付,那么,你有没有想过,这个长得很奇怪的二维码,到底是怎么来的呢?它的原理是什么?看完你就知道了

其实在介绍二维码原理之前你可能已经猜到了,二维码就是把信息翻译成黑白小方块,然后填到这个大方块里,这有点类似中学考试用的答题卡,就是把信息变成机器可扫描图案,一秒钟就能知道你得了多少分。当然,二维码的原理和答题卡还不太一样,这个稍后会讲到。

我们先来说一下二维码的哥哥----条形码。也就是超时收银员扫的那个黑白条,电脑在水平方向上识别粗细不均的黑白条,就能找出藏在其中的商品编号信息,相比于只在一个维度上携带信息的条形码,“二维码”在水平垂直两个维度上都携带了信息,也就做成了方块状的样子,条形码和二维码这一对好兄弟说白了,其实就是给数字、字母、符号等这些字符换了一身衣服,把他们打扮成了能被手机相机识别的黑白条或块。那么,最关键的问题来了,这些字符,到底是怎么变成这种二维码图案的呢?

这就要提到一个人类具有划时代意义的伟大发明“二进制”。我们平时使用的数字。字符、汉字等各种字符,虽然画风完全不同,但是机智的人类发明了一个方法,使他们都可以被统一转换成又0和1组成的二进制数字序列,这个转换的过程叫做编码,国际上有几套通用的编码规则,我们今天就用一个例子来感受一下,编码是怎么回事。比如AB这个由两个英文字母组成的字符,根据编码规则,每一个独立的英文字母都有唯一一个十进制数字与之对应,而像AB这样的字符串则要在对应数字的基础上再做运算,而运算的结果再转换成二进制,就变成“000111001101”这样的数字,哦对了,整个计算机和互联网文明都是建立在这种二进制编码上的,你现在看得视频,不管在你的电脑还是手机里,其实也只是一串0和1而以。

我们回到二维码的生成原理上,字符在变成只有0和1组成的数字序列后,在进行一系列优化算法(此处自行脑补一系列优化算法),就得到了最终的二进制编码。在最后的这串编码中,一个0就对应的是一个'白色小方块',一个1就对应的一个‘黑色小方块’,我们把这些小方块分成8个一组填进大方块里,这就是一个完整的、可以被手机相机识别的二维码图案了。

如果你要问为什么所有二维码角上有3个大方块,其实这3个一模一样的方块是用来给收相机定位的,不信你就扫一扫,是不是不管正着扫、反着扫还是斜着扫结果都是一样的?

转载于:https://blog.51cto.com/zhaoyulin/1787665

二维码原理--开胃小知识相关推荐

  1. 二维码原理解析,生成一个二维码需要这些知识

    /   今日科技快讯   / 近日,在英伟达取消以400亿美元收购英国芯片设计公司ARM的计划后,ARM宣布将在全球范围内裁员,大约涉及1000名员工.ARM在声明中表示:"与其他公司一样, ...

  2. Android二维码原理与优化方向

    困惑 做过Android的二维码扫描的童鞋可能会遇到过,很多二维码识别不了,或者识别速度慢.一般造成这个识别不出来的原因,大概以下几点: Android手机配置不一样,手机像素高低也有不同,有的手机还 ...

  3. 微信扫一扫 扫普通链接二维码打开微信小程序

    撸了今年阿里.头条和美团的面试,我有一个重要发现.......>>> 扫普通链接二维码打开小程序 为了方便小程序开发者更便捷地推广小程序,兼容线下已有的二维码,微信公众平台开放扫描普 ...

  4. 小程序:扫二维码跳转小程序

    文章目录 扫二维码跳转小程序 条件 方法一 把小程序发布到线上 生成二维码 参考 方法二:跳转到小程序指定页面 测试范围 附加:小程序获取二维码中的数据 扫二维码跳转小程序 条件 你的小程序必须要上线 ...

  5. 小程序扫描普通链接二维码跳转小程序指定界面方法

    微信官方文档扫普通链接二维码打开小程序 | 微信开放文档 看了官方文档之后,还是存在很多困惑,微信小程序是托管到微信服务器上的,要想扫描普通链接跳转指定界面,首先要知道微信把小程序放的服务器的访问路径 ...

  6. js生成二维码,并在二维码中添加小图片

    最近有个需求,要求每个网页对应一个二维码,搞了几天终于有点眉目了. 留个笔记: 1.首先在页面中加入jquery库文件和qrcode插件 <script src="../../../. ...

  7. 生成微信小程序发布上线后的二维码 、获取微信小程序二维码、微信小程序二维码如何生成?

    情景: 1.在微信小程序审核完成,发布到线上后,想通过扫描小程序二维码进入小程序 2.可分享二维码出去,通过二维码扫码进入小程序 方法: 1.进入微信小程序的后台配置.链接:微信公众平台.(如图一) ...

  8. halcon知识:【1】二维码原理

    1 QR码的历史 1994 年, DENSO WAVE子公司需要更好.更快.更强大的条码技术来处理更多字符并帮助他们跟踪车辆和零件. Masahiro Hara 和一个两人团队承担了开发我们现在知道和 ...

  9. halcon知识:【2】二维码原理

    1 说明 因为QR是一个较为复杂的协议,单说原理已经很难在短篇文章说尽.因此我们这里从最简单的QR设计和开发QR方面的应用,从中理解QR的原理. 2 设计一个问题 我们从下表入手,表中最简单的信息是: ...

最新文章

  1. 这26个阿里 Java 开源项目,你用过几个?
  2. osg中添加自定义事件UserEvent
  3. 66 http的无状态协议和cookie概述
  4. shell 删除了hdfs 文件_从零开始学大数据(三) Shell操作HDFS文件系统-中
  5. 小汤学编程之JDBC番外篇——DBUtil工具类
  6. 用 PHPRPC 实现 Ajax 安全登录
  7. 计算机教师自检自查报告,信息技术教学工作自查报告
  8. 天正坐标标注显示不全_广联达导入CAD图纸不显示怎么办?
  9. 字节跳动面试必问:kafkagroupid数目
  10. java 双冒号_Java 双冒号::是什么操作符?
  11. 输入一个整数,计算它各位上数字的和。(注意:是任意位的整数)
  12. 各种编程技术资料分享
  13. 苹果电脑mac或苹果手机如何下载b站视频到电脑或手机本地?
  14. 12x12怎么速算_12x12怎么速算_12x12怎样巧算
  15. 李宏毅2020机器学习笔记1——CXK
  16. Unity 3D游戏开发 - U3D入门 | 游戏场景基本操作
  17. linux 删除IP地址
  18. 计算机视觉-图像的SIFT特征(尺度空间)
  19. Android自定义View之getTextBounds()
  20. js计算数组中的最大值

热门文章

  1. SpringBoot整合SpringBatch实用简例
  2. 交互式计算机图形学总结:第一章 图形系统和模型
  3. Flutter一切皆widget但是不要将所有东西放入一个widget
  4. 服务器系统防火墙例外,Windows Server 2012设置端口例外、防火墙设置方法
  5. 神策数据受邀出席,携手亚马逊云科技共建智能家居新航海时代
  6. 房产企业数字化转型如何快速落地?
  7. 玩心马宗骥:游戏持续“霸榜”幕后的数据真相
  8. java集合系列之18 spring boot程序员的必修课
  9. 人工智能听了很多遍,都应用在哪些领域了你知道吗?
  10. Docker 17.12.0 发布