从摩斯密码到UTF-8

公告:文章会第一时间发在微信公众号《魔笛手CTO》,欢迎关注 

在电影《无间道》中,经常会出现摩斯密码的身影。摩斯密码本身的传奇性,为电影增色不少。其实摩斯密码一点也不复杂,反而很简单,透过摩斯密码,我们可以一窥计算机如何表示字符串的奥秘。

 

 

 

摩斯密码通过"."(点)和"-"(横)的排列组合来表示相应的字符。下面是26个字母的摩斯密码表示。

一眼看上去,似乎很难发现规律。下面跟着老张,按照由短到长的顺序重新排列组合。

 

首先来看一个字符的表示,一个点或者一个横仅能表示两个字母,E和T

.E
-T

 

紧接着是两个字符的表示,现在可以表示四个字母了,分别是I、A、N、M

 ..I -.N
 .-A --M

 

三个字符的组合可以表示更多的字母。

 …S -..D
 ..-U -.-K
 .-.R --.G
 .--W ---O

 

最后,我们用四个字符的组合表示剩下的字母,其中红色的部分为重音字母,略去不表。

 ....H -...B
 ...-V -..-X
 ..-.F -.-.C
 ..--  -.--Y
 .-..L --..Z
 .-.-  --.-Q
 .--.P ---. 
 .---J ---- 

 

是不是摸到了什么规律?点和横的数量决定了能表示多少个字母。

点和横的数量表示字母的数量
12
24
38
416

如果我们扩展将点和横的数量扩展到7,那么我们能够表示多少个字符呢?答案是2**7=128。实际上计算机诞生之初,为了便于通信制定了ASCII编码规范。

但是随着计算机影响力在全球范围内的扩散,ASCII编码已经不能满足表示各种语言的需求了,在这时各语言诞生了各种各样的编码规范,如中文GBK和日语的Shift-JIS。但是各种各样的编码规范阻碍了跨语言交流,这时Unicode应运而生。Unicode编码有不同的具体实现,分别为utf-8、utf-16和utf-32等,其中utf-8占用一到四个字节,utf-16占用二或四个字节,utf-32占用四个字节。以常用的utf-8为例,除去控制位,最大可以表示2**31个字符,足以涵盖每一种语言。

 

听完了老张的介绍,是不是恍然大明白?最后留个作业,欢迎评论区留言。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值