跳到主要内容

简要介绍进制和 ASCII 码表

· 阅读需 5 分钟

1. 什么是进制

  • 进制 进制全称“进位计数制”,一种计数方式,比较常用的是十进制
    • 十进制 十进制就是逢十进一,所以十进制有 10 个数字表示——0,1,2,3,4,5,6,7,8

生活中除了十进制还有很多常见的进制,可能你没有注意到,比如时钟,秒数是 60 进制,秒针从 0 走到 59 后,再走一分钟逢 60 进一成为一分钟。

再说计算机,计算机中也可以采用十进制来代表数字,那为什么偏偏要用二进制呢?原因很简单,因为二进制只有 0 和 1,表示起来很简单。

那为什么说二进制为什么简单呢?因为计算机底层也是硬件,每次硬件在两条路径和十条路径中选择肯定前者来得轻松,只不过为了达到同样目的地,二进制需要多走几步。

2.话说二进制

我们先来看看十进制是怎么表示的,假设我们现在有一个十进制的数字 (3107)10(3107)_{10}

注意

  1. 这里数字 (3107)10(3107)_{10} 用括号括起来,下标是10,表示它是10进制 这个下标就是用来表明它是什么进制的,比如 (3107)8(3107)_{8}注意此时它的下标是 8,那它就不是十进制了,而是八进制了 另外,为什么平时不这些写呢?因为十进制太通用了,不写默认它就是十进制
  2. 除了这种表示方法,常用的还有后缀字母表示法,你可能遇到过: 比如 3107H,在数字后面加上字母H,表明它是个十六进制的数字

这个 (3107)10(3107)_{10} 我们拆开来看的话:

3×103+1×102+0×101+7×1003×10^3+1×10^2+0×10^1+7×10^0

我们再来看一个二进制数字(1101)2(1101)_2,它也可以表示为

1×23+1×22+0×21+1×201×2^3+1×2^2+0×2^1+1×2^0

看到这里你应该能明白到为什么叫做十进制和二进制的原因了吗?

再说进制的转化,二进制转十进制很简单,你把

1×23+1×22+0×21+1×201×2^3+1×2^2+0×2^1+1×2^0

接下来按十进制来计算

8+4+0+18+4+0+1

就等于 (13)10(13)_{10},直接写成 (1101)2(1101)_2=(13)10(13)_{10}

3.什么是ASCII码

  • ASCII ((American Standard Code for Information Interchange)美国信息交换标准代码),名字怪长的,我们只着眼于代码这两个字就好了

我们知道,计算机表示数字是比较简单的,但如何表示文本呢?比如 a、b、c、d 这些英文,甚至是标点符号、汉字等等

前人做了一个很好的替换,就是先建一个表,表中存放着这些文本符号

文本符号
a
b
c

再给这些文本编个顺序

号码文本符号
0a
1b
2c

你要取的时候,按照号码来就好了,想要 a 输入 1,想要 b 输入 2,依次类推(这时你可能会明白一点“代码”的意思)

那么 ASCII 码表是作为较早期的符号表,多早呢?1967年,当时美国人发明的,要知道美国人用的语言就 26 个字母,再加上一些乱七八糟的符号等等,用 128 个字符就能够涵盖了

那为什么是 128 这个数字呢?在前面提到,计算机是用二进制表示的,从 0 号开始编码,一直到 127 号,刚好就是 128 个号码

那么最小号码是 0 号,最大号码是 127 号,那么如果我们能用数字表示最大的号码,那么比他小的号码也都能表示,而 (1111111)2(1111111)_2 就等于 127,我们展开来看

1×26+1×25+1×24+1×23+1×22+1×21+1×201×2^6+1×2^5+1×2^4+1×2^3+1×2^2+1×2^1+1×2^0

另外,这个(1111111)2(1111111)_2 一共有7位,所以也可以说成用 7 位表示的ASCII码表