KnightOnHorse的博客

追求技术的道路永无止境

为什么寄存器比内存快?

计算机的存储层次(memory hierarchy)之中,寄存器(register)最快,内存其次,最慢的是硬盘。 ...

2018-04-23 12:21:35

阅读数 70

评论数 0

彩票的数学知识

彩票怎样才能中奖? 理论上,只能靠运气。但是,如果规则设计得不好,就可以钻漏...

2018-04-23 12:19:55

阅读数 343

评论数 0

熵:宇宙的终极规则

1、有人曾经问我:"成年后,有没有书籍改变过你的世界观?"我想了想,还真有这样的书。那时,我已经工作好几年了,偶然在图书馆翻到一本旧书《熵:一种新的世界观》(上海译文出版社,1987)。那本书是科普著作,介绍物理学概念"熵"。...

2018-04-15 09:52:45

阅读数 536

评论数 0

虚数的意义

有人在Stack Exchange问了一个问题:  "我一直觉得虚数(imaginary number)很难懂。  中学老师说,虚数就是-1的平方根。    可是,什么数的平方等于-1呢?计算器直接显示出错!  直到今天,我也没有搞懂。谁能解释,虚数到底是什么?  它有什么用?&...

2018-04-15 09:48:40

阅读数 2963

评论数 0

TCP 协议简介

TCP 是互联网核心协议之一,本文介绍它的基础知识。一、TCP 协议的作用互联网由一整套协议构成。TCP 只是其中的一层,有着自己的分工。(图片说明:TCP 是以太网协议和 IP 协议的上层协议,也是应用层协议的下层协议。)最底层的以太网协议(Ethernet)规定了电子信号如何组成数据包(pac...

2018-04-15 09:46:49

阅读数 205

评论数 0

加密货币的本质

去年,比特币暴涨,其他币也像雨后春笋一样冒出来,已经有1000多种了。很多人都在问,加密货币(cryptocurrency)的时代,真的来临了吗?将来会不会人类不再使用美元、人民币,改用加密货币?那么多品种,我应该使用哪一种币?要不要现在就去投资一些?这些问题的答案,我也想知道,就花了很多时间查阅...

2018-04-15 09:45:21

阅读数 62

评论数 0

比特币入门教程

比特币(bitcoin)诞生于2008年的一篇论文。一个署名为中本聪的人,提出了革命性的构想:让我们创造一种不受政府或其他任何人控制的货币!这个想法堪称疯狂:一串数字,背后没有任何资产支持,也没有任何人负责,你把它当作钱付给对方,怎么会有人愿意接受?但是,狂想居然变成了现实。随后的几年,在全世界无...

2018-04-15 09:42:47

阅读数 356

评论数 0

区块链入门教程

区块链(blockchain)是眼下的大热门,新闻媒体大量报道,宣称它将创造未来。可是,简单易懂的入门文章却很少。区块链到底是什么,有何特别之处,很少有解释。下面,我就来尝试,写一篇最好懂的区块链教程。毕竟它也不是很难的东西,核心概念非常简单,几句话就能说清楚。我希望读完本文,你不仅可以理解区块链...

2018-04-15 09:41:31

阅读数 68

评论数 0

IaaS,PaaS,SaaS 的区别

越来越多的软件,开始采用云服务。云服务只是一个统称,可以分成三大类。IaaS:基础设施服务,Infrastructure-as-a-servicePaaS:平台服务,Platform-as-a-serviceSaaS:软件服务,Software-as-a-service它们有什么区别呢?IBM 的...

2018-04-15 09:39:55

阅读数 79

评论数 0

User space 与 Kernel space

学习 Linux 时,经常可以看到两个词:User space(用户空间)和 Kernel space(内核空间)。简单说,Kernel space 是 Linux 内核的运行空间,User space 是用户程序的运行空间。为了安全,它们是隔离的,即使用户的程序崩溃了,内核也不受影响。Kerne...

2018-04-15 09:38:29

阅读数 362

评论数 0

理解字节序

1.计算机硬件有两种储存数据的方式:大端字节序(big endian)和小端字节序(little endian)。举例来说,数值0x2211使用两个字节储存:高位字节是0x22,低位字节是0x11。大端字节序:高位字节在前,低位字节在后,这是人类读写数值的方法。小端字节序:低位字节在前,高位字节在...

2018-04-14 09:14:08

阅读数 28

评论数 0

DNS 原理入门

DNS 是互联网核心协议之一。不管是上网浏览,还是编程开发,都需要了解一点它的知识。本文详细介绍DNS的原理,以及如何运用工具软件观察它的运作。我的目标是,读完此文后,你就能完全理解DNS。一、DNS 是什么?DNS (Domain Name System 的缩写)的作用非常简单,就是根据域名查出...

2018-04-14 09:11:42

阅读数 62

评论数 0

编译器的工作过程

源码要运行,必须先转成二进制的机器码。这是编译器的任务。比如,下面这段源码(假定文件名叫做test.c)。 #include <stdio.h> int main(void) { fputs("Hello, world!\n&am...

2018-04-14 09:08:33

阅读数 63

评论数 0

数据库的最简单实现

所有应用软件之中,数据库可能是最复杂的。MySQL的手册有3000多页,PostgreSQL的手册有2000多页,Oracle的手册更是比它们相加还要厚。但是,自己写一个最简单的数据库,做起来并不难。Reddit上面有一个帖子,只用了几百个字,就把原理讲清楚了。下面是我根据这个帖子整理的内容。一、...

2018-04-14 09:06:50

阅读数 1725

评论数 2

字符串匹配的Boyer-Moore算法

上一篇文章,我介绍了KMP算法。但是,它并不是效率最高的算法,实际采用并不多。各种文本编辑器的"查找"功能(Ctrl+F),大多采用Boyer-Moore算法。Boyer-Moore算法不仅效率高,而且构思巧妙,容易理解。1977年,德克萨斯大学的Robert ...

2018-04-14 09:03:30

阅读数 61

评论数 0

字符串匹配的KMP算法

字符串匹配是计算机的基本任务之一。举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"?许多算法可以完成这个任务,Knuth-Morris-Pratt算...

2018-04-14 09:00:20

阅读数 35

评论数 0

进程与线程的一个简单解释

进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。1.计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。2.假定工厂的电力有限,一次只能供给一个车间使用。也就...

2018-04-14 08:58:59

阅读数 46

评论数 0

云主机是什么

一、共享主机和云主机从互联网诞生至今,大部分站长都是从"共享主机"(shared hosting)开始学习建站的。所谓"共享主机",就是一台服务器上有许多网站,大家共享这台服务器的硬件和带宽。如果它发生故障,那么上面的所有网站...

2018-04-14 08:55:41

阅读数 491

评论数 0

字符编码笔记:ASCII,Unicode 和 UTF-8

一、ASCII 码我们知道,计算机内部,所有信息最终都是一个二进制值。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从00000000...

2018-04-14 08:23:01

阅读数 76

评论数 0

图像与滤波

一、为什么图像是波?我们知道,图像由像素组成。下图是一张 400 x 400 的图片,一共包含了 16 万个像素点。每个像素的颜色,可以用红、绿、蓝、透明度四个值描述,大小范围都是0 ~ 255,比如黑色是[0, 0, 0, 255],白色是[255, 255, 255, 255]。通过 Canv...

2018-04-14 08:19:21

阅读数 364

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭